]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/scripts/clean-old.sh
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / scripts / clean-old.sh
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/scripts/clean-old.sh b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/scripts/clean-old.sh
new file mode 100644 (file)
index 0000000..cda80f2
--- /dev/null
@@ -0,0 +1,165 @@
+#!/bin/bash
+
+# look for old 0.x cruft, and get rid of it.
+# Should already be sitting in the npm folder.
+
+# This doesn't have to be quite as cross-platform as install.sh.
+# There are some bash-isms, because maintaining *two*
+# fully-portable posix/bourne sh scripts is too much for
+# one project with a sane maintainer.
+
+# If readlink isn't available, then this is just too tricky.
+# However, greadlink is fine, so Solaris can join the party, too.
+readlink="readlink"
+which $readlink >/dev/null 2>/dev/null
+if [ $? -ne 0 ]; then
+  readlink="greadlink"
+  which $readlink >/dev/null 2>/dev/null
+  if [ $? -ne 0 ]; then
+    echo "Can't find the readlink or greadlink command. Aborting."
+    exit 1
+  fi
+fi
+
+if [ "x$npm_config_prefix" != "x" ]; then
+  PREFIXES=$npm_config_prefix
+else
+  node="$NODE"
+  if [ "x$node" = "x" ]; then
+    node=`which node`
+  fi
+  if [ "x$node" = "x" ]; then
+    echo "Can't find node to determine prefix. Aborting."
+    exit 1
+  fi
+
+
+  PREFIX=`dirname $node`
+  PREFIX=`dirname $PREFIX`
+  echo "cleanup prefix=$PREFIX"
+  PREFIXES=$PREFIX
+
+  altprefix=`"$node" -e process.installPrefix`
+  if [ "x$altprefix" != "x" ] && [ "x$altprefix" != "x$PREFIX" ]; then
+    echo "altprefix=$altprefix"
+    PREFIXES="$PREFIX $altprefix"
+  fi
+fi
+
+# now prefix is where npm would be rooted by default
+# go hunting.
+
+packages=
+for prefix in $PREFIXES; do
+  packages="$packages
+    "`ls "$prefix"/lib/node/.npm 2>/dev/null | grep -v .cache`
+done
+
+packages=`echo $packages`
+
+filelist=()
+fid=0
+
+for prefix in $PREFIXES; do
+  # remove any links into the .npm dir, or links to
+  # version-named shims/symlinks.
+  for folder in share/man bin lib/node; do
+    find $prefix/$folder -type l | while read file; do
+      target=`$readlink $file | grep '/\.npm/'`
+      if [ "x$target" != "x" ]; then
+        # found one!
+        filelist[$fid]="$file"
+        let 'fid++'
+        # also remove any symlinks to this file.
+        base=`basename "$file"`
+        base=`echo "$base" | awk -F@ '{print $1}'`
+        if [ "x$base" != "x" ]; then
+          find "`dirname $file`" -type l -name "$base"'*' \
+          | while read l; do
+              target=`$readlink "$l" | grep "$base"`
+              if [ "x$target" != "x" ]; then
+                filelist[$fid]="$1"
+                let 'fid++'
+              fi
+            done
+        fi
+      fi
+    done
+
+    # Scour for shim files.  These are relics of 0.2 npm installs.
+    # note: grep -r is not portable.
+    find $prefix/$folder -type f \
+      | xargs grep -sl '// generated by npm' \
+      | while read file; do
+          filelist[$fid]="$file"
+          let 'fid++'
+        done
+  done
+
+  # now remove the package modules, and the .npm folder itself.
+  if [ "x$packages" != "x" ]; then
+    for pkg in $packages; do
+      filelist[$fid]="$prefix/lib/node/$pkg"
+      let 'fid++'
+      for i in $prefix/lib/node/$pkg\@*; do
+        filelist[$fid]="$i"
+        let 'fid++'
+      done
+    done
+  fi
+
+  for folder in lib/node/.npm lib/npm share/npm; do
+    if [ -d $prefix/$folder ]; then
+      filelist[$fid]="$prefix/$folder"
+      let 'fid++'
+    fi
+  done
+done
+
+# now actually clean, but only if there's anything TO clean
+if [ "${#filelist[@]}" -gt 0 ]; then
+  echo ""
+  echo "This script will find and eliminate any shims, symbolic"
+  echo "links, and other cruft that was installed by npm 0.x."
+  echo ""
+
+  if [ "x$packages" != "x" ]; then
+    echo "The following packages appear to have been installed with"
+    echo "an old version of npm, and will be removed forcibly:"
+    for pkg in $packages; do
+      echo "    $pkg"
+    done
+    echo "Make a note of these. You may want to install them"
+    echo "with npm 1.0 when this process is completed."
+    echo ""
+  fi
+
+  OK=
+  if [ "x$1" = "x-y" ]; then
+    OK="yes"
+  fi
+
+  while [ "$OK" != "y" ] && [ "$OK" != "yes" ] && [ "$OK" != "no" ]; do
+    echo "Is this OK?"
+    echo "  enter 'yes' or 'no'"
+    echo "  or 'show' to see a list of files "
+    read OK
+    if [ "x$OK" = "xshow" ] || [ "x$OK" = "xs" ]; then
+      for i in "${filelist[@]}"; do
+        echo "$i"
+      done
+    fi
+  done
+  if [ "$OK" = "no" ]; then
+    echo "Aborting"
+    exit 1
+  fi
+  for i in "${filelist[@]}"; do
+    rm -rf "$i"
+  done
+fi
+
+echo ""
+echo 'All clean!'
+
+exit 0