diff --git a/README.md b/README.md index b296ce3..9b0d50b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ -# NPM Global - Docker mod for code-server +# NPM Global - Docker mod for code-server/openvscode-server -This mod sets the NPM global folder to `/config` in code-server during container start. +This mod sets the NPM global folder to `/config` in code-server/openvscode-server during container start. -In code-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:code-server-npmglobal` +In code-server/openvscode-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:code-server-npmglobal` If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:code-server-nodejs|linuxserver/mods:code-server-npmglobal` + +**This mod requires npm installed via a different mod** diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/dependencies.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/dependencies.d/init-mods-package-install new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/run b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/run new file mode 100755 index 0000000..9b6eba1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/run @@ -0,0 +1,19 @@ +#!/usr/bin/with-contenv bash + +# check npm exists +if [ -f /usr/bin/npm ]; then + echo "creating npm global folder in /config" + mkdir -p /config/npm-global + + echo "setting npm to global folder in /config" + npm config set prefix '/config/npm-global' + + if grep -q "/config/npm-global/bin" "/etc/services.d/code-server/run"; then + echo "npm-global already in PATH" + else + echo "ensuring npm-global is in PATH" + sed -i '/^#!\/usr\/bin/a \\n# Added by codeserver-npmglobal\nexport PATH=/config/npm-global/bin:$PATH' /etc/services.d/code-server/run + fi +else + echo "**** npm not installed, skipping npmglobal install ****" +fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/type b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/up b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/up new file mode 100644 index 0000000..454d4e7 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-code-server-npmglobal-install/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-code-server-npmglobal-install b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-code-server-npmglobal-install new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-code-server-npmglobal-install b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-code-server-npmglobal-install new file mode 100644 index 0000000..e69de29