@nexssp/ensure

    1.1.28 • Public • Published

    @nexssp/ensure

    NEW: 02.04.2022 Added workflows + support for MacOS.

    # or on js ensureInstalled('git')
    nexssp-ensure git # will install git on any os you are. If it is installed it will return the path.

    It's more then @nexssp/os function as it has translator. What it means? that for example on Gentoo to install git you need to put emerge dev-vcs/git (not git). We cover that in the @nexssp/extend. We will be building the database of what and which distro what kind of changes has. For example:

    Translator file example

    Git

    Below is just: All Gentoos use 'dev-vcs/git'.

    const os = require('@nexssp/os/legacy')
    // first tag means all versions. We specified 1, because it does matter for the first tag
    const GentooFirst = os.getTags(os.distros.GENTOO, 1).first()
    module.exports = {
      [GentooFirst]: 'dev-vcs/git', // All gentoos will have this other systems has git
    }
    const result = ensureInstalled("git") => it will automatically install git on your machine
    • Function just make sure your program is installed (Linux, WSL, Windows) and macOS soon..

    • This package is used in many packages. For example in the @nexssp/languages where you can install over 50 programming languages. Try npx @nexssp/languages r install or npx @nexssp/languages php install.

    API

    Functions

    • ensureInstalled(command/package, installCommand, options)
    • which(command) - returns path of the command/program, false if does not exist.

    Examples

    const { ensureInstalled } = require('@nexssp/ensure')
    
    const path = ensureInstalled('jq', 'apt install jq', {
      progress: cliArgs.progress,
    })
    
    // You can also pass 2 parameters and install command will be generated based on @nexssp/os and translators.
    const path2 = ensureInstalled('lua', {
      progress: cliArgs.progress,
    })
    
    // Windows Subsystem for Linux
    const path3 = ensureInstalled('wsl jq', 'wsl -u root apt install jq')

    CLI tool

    nexssp-ensure jq --install="apt install jq"
    
    # Windows Subsystem for Linux
    nexssp-ensure "wsl jq" --install="wsl -u root apt install jq"

    Development

    Translator files

    Example 1

    When ensure installing the packages it is looking at the translator files. Here are the examples:

    const os = require('@nexssp/os/legacy')
    
    // first tag means all versions. We specified 1, because it does matter for the first tag which is Windows
    const Windows = os.getTags(os.distros.WINDOWS, 1).first() // first is always Windows. You could use also "win32", "linux", "darwin" .. all from https://nodejs.org/api/process.html#process_process_platform, but also distros based on @nexssp/os tags
    
    module.exports = {
      [Windows]: {
        install: `powershell -command "Set-ExecutionPolicy RemoteSigned -scope CurrentUser" ; powershell -command "iex (new-object net.webclient).downloadstring('https://get.scoop.sh')"`,
      },
    }

    Example 2

    const os = require('@nexssp/os/legacy')
    
    const GentooFirst = os.getTags(os.distros.GENTOO, 1).first()
    
    module.exports = {
      [GentooFirst]: 'dev-vcs/git', // All gentoos will have this other systems has git, other systems will have standard.
    }

    Install

    npm i @nexssp/ensure

    Homepage

    nexss.com

    DownloadsWeekly Downloads

    17

    Version

    1.1.28

    License

    MIT

    Unpacked Size

    28.4 kB

    Total Files

    15

    Last publish

    Collaborators

    • nexss