solidarity icon indicating copy to clipboard operation
solidarity copied to clipboard

shell scripts that pass in shell fail in solidarity shell

Open FrederickEngelhardt opened this issue 3 years ago • 1 comments

Hi, I'm trying to run a shell script to detect if you have nvm or fnm installed.

The first case passes (in both solidarity and shell) if you have fnm install or the .nvm folder exists at your home root.

The second case fails when running solidarity but passes when ran in shell.

To replicate this issue you will need to have nvm installed. https://github.com/nvm-sh/nvm

Example .solidarity json

{
  "$schema": "http://json.schemastore.org/solidaritySchema",
  "requirements": {
    "Node Manager (NVM | FNM)": [
      {
        "rule": "shell",
        "command": "if [ $(command -v fnm) ] || [ -d $HOME/.nvm ]; then echo true; fi;",
        "match": "true",
        "error": "NVM or FNM binaries are not detected"
      },
      {
        "rule": "shell",
        "command": "if [ $(command -v nvm) ]; then echo true; fi;",
        "match": "true",
        "error": "NVM not detected"
      }
    ],
  }
}

FrederickEngelhardt avatar Aug 10 '21 17:08 FrederickEngelhardt

Use "cli" rule with "binary" property:

{
        "rule": "cli",
        "binary": "nvm"
      },

iegik avatar Jun 01 '23 09:06 iegik