From 436c78fb7f1e8f53543d070fb450168385a2057a Mon Sep 17 00:00:00 2001 From: Guido Longoni Date: Sat, 1 Feb 2020 15:12:30 +0100 Subject: [PATCH] completato npm.sh --- featlib/npm.sh | 57 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/featlib/npm.sh b/featlib/npm.sh index ce36757..775b4fa 100755 --- a/featlib/npm.sh +++ b/featlib/npm.sh @@ -28,4 +28,59 @@ function feat_add_npm() { npm install -g n } -#TODO: aggiungere npm_feat_needed e tutte le altre funzioni correlate \ No newline at end of file +function npm_initialized() { + [ -s 'package.json' ] +} + +function npm_feat_added() { + npm list >/dev/null 2>&1 | grep -q "$FEAT@" +} + +function npm-g_feat_added() { + npm list -g >/dev/null 2>&1 | grep -q "$FEAT@" +} + +function npm_feat_missing() { + npm list 2>&1 >/dev/null | grep -q 'missing[^ ]* *'"$FEAT"'@' +} + +function npm-g_feat_add() { + npm install -g npm + npm install -g "$1" +} + +function npm_feat_add() { + npm install -g npm + npm install "$1" +} + +function npm_feat_needed() { + feat_needed "npm" + FEAT="$1" + if ! npm_initialized; then + npm init -y + fi + if npm_feat_added "$FEAT"; then + if npm_feat_missing "$FEAT"; then + npm install + fi + else + if type "npm_feat_add_$FEAT" > /dev/null 2>&1 ; then + eval "npm_feat_add_$FEAT" + else + npm_feat_add "$FEAT" + fi + fi +} + +function npm-g_feat_needed() { + feat_needed "npm" + FEAT="$1" + if ! npm-g_feat_added "$FEAT"; then + if type "npm-g_feat_add_$FEAT" > /dev/null 2>&1 ; then + eval "npm-g_feat_add_$FEAT" + else + npm-g_feat_add "$FEAT" + fi + fi +}