From 586e599ab636ad2d3afcdc7dc41681a5fcb1baf2 Mon Sep 17 00:00:00 2001 From: Richard Sperry Date: Mon, 14 Apr 2025 15:15:36 -0700 Subject: [PATCH] the file doesnt have 99 lines.... ffs --- .vscode/extensions.json | 5 + .../dependencies.d/init-code-server | 0 .../code-server/dependencies.d/init-user | 0 .../s6-overlay/s6-rc.d}/code-server/finish | 0 .../etc/s6-overlay/s6-rc.d}/code-server/run | 5 +- .../etc/s6-overlay/s6-rc.d}/code-server/type | 0 .../init-code-server/dependencies.d/base | 0 .../s6-overlay/s6-rc.d/init-code-server/run | 98 +++++++++++++++++++ .../s6-overlay/s6-rc.d}/init-code-server/type | 0 .../s6-overlay/s6-rc.d}/init-code-server/up | 0 .../s6-rc.d/user/contents.d}/code-server | 0 .../s6-rc.d/user/contents.d}/init-code-server | 0 vscode/temp/init-code-server/run | 96 ------------------ 13 files changed, 104 insertions(+), 100 deletions(-) create mode 100644 .vscode/extensions.json rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/code-server/dependencies.d/init-code-server (100%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/code-server/dependencies.d/init-user (100%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/code-server/finish (100%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/code-server/run (88%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/code-server/type (100%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/init-code-server/dependencies.d/base (100%) create mode 100644 vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/run rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/init-code-server/type (100%) rename vscode/{temp => rootfs/etc/s6-overlay/s6-rc.d}/init-code-server/up (100%) rename vscode/{temp/usr => rootfs/etc/s6-overlay/s6-rc.d/user/contents.d}/code-server (100%) rename vscode/{temp/usr => rootfs/etc/s6-overlay/s6-rc.d/user/contents.d}/init-code-server (100%) delete mode 100644 vscode/temp/init-code-server/run diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..6334435 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "pinage404.bash-extension-pack" + ] +} \ No newline at end of file diff --git a/vscode/temp/code-server/dependencies.d/init-code-server b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/init-code-server similarity index 100% rename from vscode/temp/code-server/dependencies.d/init-code-server rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/init-code-server diff --git a/vscode/temp/code-server/dependencies.d/init-user b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/init-user similarity index 100% rename from vscode/temp/code-server/dependencies.d/init-user rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/init-user diff --git a/vscode/temp/code-server/finish b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/finish similarity index 100% rename from vscode/temp/code-server/finish rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/finish diff --git a/vscode/temp/code-server/run b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/run similarity index 88% rename from vscode/temp/code-server/run rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/run index dd1ca9d..b18c928 100644 --- a/vscode/temp/code-server/run +++ b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/run @@ -4,8 +4,6 @@ # Home Assistant Community Add-on: Studio Code Server # Runs the code-server # ============================================================================== -declare -a options -declare config_path bashio::log.info 'Starting code-server...' @@ -14,5 +12,4 @@ export HASS_SERVER="http://supervisor/core" export HASS_TOKEN="${SUPERVISOR_TOKEN:-}" # Run the code server -exec code-server "/config" - +exec code-server "/config" \ No newline at end of file diff --git a/vscode/temp/code-server/type b/vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/type similarity index 100% rename from vscode/temp/code-server/type rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/code-server/type diff --git a/vscode/temp/init-code-server/dependencies.d/base b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/base similarity index 100% rename from vscode/temp/init-code-server/dependencies.d/base rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/base diff --git a/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/run b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/run new file mode 100644 index 0000000..7e217bf --- /dev/null +++ b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/run @@ -0,0 +1,98 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Studio Code Server +# Sets up code-server. +# ============================================================================== +bashio::log.info "Initalizing code-server configs" + +# List of previous config hashes, to allow upgrade "default" configs. +readonly -a PREVIOUS_DEFAULT_CONFIG_HASHES=( + 86776df88391c3d94f79f62b430f9ff8538960628d5e04fb660165a5a46640d2e74f89cd68b3e6985dc59101ae2dda00a1e25aa48381acfd4736858c5f23878b + 2be4c50575c05711d30121c3a1320698d3dbb034523c481be3aad3b638af3e0a46113d8c3f8cfc1b0f01e4cc10f32da3a30feca161c31b5b27177aeb7231bf70 + d4745002643a0168f65bc5b465a9baff59af0fb4783b50553e1a4e8b3f1a569fc4905df19b7743f7f313a5809a5128d997fc4b5e0a0e5db0a01f47b3b7bec39d + 6ed36f832778926fa614fc12eec97b8f813bbb1a04f709769c9e5f54bc8e3cfc05a110155921a3b2ae47fc8389d24fa2bd385e4ce5a6c94850813791a6ac1c82 + 944d9ba57968666353df7e9dc78ec5d94b9b052e1abf863b51bc1f372d9f35cb2d93259f153e9ab3b3dd1b520bfcd7bddb54803bcfd9eb65975ae8fb5553663c + 4ef960e3d6e795adda51d5cbeb18d309fee87ba5cd177292a21b5a70a71a4726ae7053c3793cddc6d63d3b4dacc180ad3ea12d005fc8d63a1bc4cb29f9a17f18 + c5b8acf06ef6d9a2435e9ddb92cb9fce7cfbfe4a2206b0e0c3c4ed514cc926f8d3c662e694a995d102b5ba939056f93201c220558e06e1cd0872bfb1995ba148 + 08d86c84a0d80720b22712e878963e90cbb34b659330dad8a823f3c5c7f0ae043d197a5e3020dd7ab4fda3625e17f794675ec074984951e7107db2488898a8d0 + 5243d7664d30b5aa0c45fbe1089cccdf85c5ade17cddd97e21b3a29ccb37b20d20bdfecc141ad6e1a7aa5ea8ee61695a79a43140a2d53f9f91687bc61f7e496c + e5106aaaff5f67a693fd49deb7dd52f1cc0f7ba542b33c99c0099bf58f1a33c789d1c5e3803dea2942540c07c734f3ca317c3cc91673aff388cb79ee7112db0b + b28a299111ac74cc9498f76ce2cb437b2cf5e8e7bb9388d9929347e2948bd56591bd499d5de04638553f6e12fa77c53320a046e96cffce9fa4f8c924d5c91581 + dbe905f0935b2fea8bb5ba379bff78db9d056ea6d0965c68aa9b07938a52cbbf117186452b2b6c766aa4cf93cc3494ad91b763e8500e515e41d8cde31a3821ae + 2212babaa9dc46d38ba239052c9c05151abe517cc8b493d0d351a96bf70c1efa4f7479f6ed0b75811429ba649906eb5657d73b0732b460e718a5c66603dcdbda +) + +readonly DEFAULT_FILES_PATH="/usr/lib/code-server/defaults" +readonly DEFAULT_CONFIG_PATH="/config/addons_config/" +readonly CODE_SERVER_CONFIG="/root/.config/code-server/config.yaml" + +# Ensure config path exists +if bashio::config.has_value "config_path" ; then + config_path=$(bashio::config 'config_path') + if ! bashio::fs.directory_exists "${config_path}"; then + bashio::exit.nok "Configured config path does not exists" + fi +else + # otherwise set to local dir + config_path="$DEFAULT_CONFIG_PATH" + if ! bashio::fs.directory_exists "$config_path"; then + bashio::log.info "Config path did not exist, createing $config_path" + mkdir -p $config_path || + bashio::exit.nok "Could not create persistent storage folder." + fi +fi + +bashio::log.info "using code-server config path: $config_path" + +# Ensure code-server config +if ! bashio::fs.file_exists $CODE_SERVER_CONFIG; then + cp "$DEFAULT_FILES_PATH/config.yaml" "$CODE_SERVER_CONFIG" +fi + + +if bashio::config.has_value 'log_level'; then + sed -i "/log_level=/c log_level=\"$log_level\"" "$CODE_SERVER_CONFIG" +fi + +# Ensure extensions path +ext_path="$config_path/extensions" +if [ ! -d "$ext_path" ]; then + mkdir -p "$ext_path" || + bashio::exit.nok "Could not create persistent extensions folder." + + # Only do this on folder create so users can remove faulty extentions. + # Install code-server extensions via code-server so terminate is aware of them. + while read -r extention; do + if [ ! -e "$ext_path/$extention*" ]; then + code-server --install-extension="$extention" + fi + done <"$DEFAULT_FILES_PATH/vscode.extensions" +fi +sed -i "/extensions-dir=/c extensions-dir=\"$ext_path\"" "$CODE_SERVER_CONFIG" + +# Ensure User settings path +user_path="$config_path/user" +if [ ! -d "$user_path" ]; then + mkdir -p "$user_path" || + bashio::exit.nok "Could not create persistent User folder." +fi +sed -i "/user-data-dir=/c user-data-dir=\"$user_path\"" "$CODE_SERVER_CONFIG" + +# Sets up default user settings on first start. +if ! bashio::fs.file_exists "$user_path"/settings.json; then + cp "$DEFAULT_FILES_PATH/settings.json" "$user_path/settings.json" +else + # Upgrade if settings.json is still default from previous version. + current=$(sha512sum "$user_path"/settings.json | cut -d " " -f 1) + if [[ " ${PREVIOUS_DEFAULT_CONFIG_HASHES[*]} " == *" ${current} "* ]]; then + + cp "$DEFAULT_FILES_PATH/settings.json" "$user_path/settings.json" + fi +fi + +if ! bashio::fs.file_exists "$user_path"/workspaces.json; then + cp "$DEFAULT_FILES_PATH/workspaces.json" "$user_path/workspaces.json" +fi + +exit 0 \ No newline at end of file diff --git a/vscode/temp/init-code-server/type b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/type similarity index 100% rename from vscode/temp/init-code-server/type rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/type diff --git a/vscode/temp/init-code-server/up b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/up similarity index 100% rename from vscode/temp/init-code-server/up rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/init-code-server/up diff --git a/vscode/temp/usr/code-server b/vscode/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/code-server similarity index 100% rename from vscode/temp/usr/code-server rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/code-server diff --git a/vscode/temp/usr/init-code-server b/vscode/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server similarity index 100% rename from vscode/temp/usr/init-code-server rename to vscode/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server diff --git a/vscode/temp/init-code-server/run b/vscode/temp/init-code-server/run deleted file mode 100644 index f3af197..0000000 --- a/vscode/temp/init-code-server/run +++ /dev/null @@ -1,96 +0,0 @@ -#!/command/with-contenv bashio -# shellcheck shell=bash -# ============================================================================== -# Home Assistant Community Add-on: Studio Code Server -# Sets up code-server. -# ============================================================================== -#bashio::log.info "Initalizing code-server configs" - -# # List of previous config hashes, to allow upgrade "default" configs. -# readonly -a PREVIOUS_DEFAULT_CONFIG_HASHES=( -# 86776df88391c3d94f79f62b430f9ff8538960628d5e04fb660165a5a46640d2e74f89cd68b3e6985dc59101ae2dda00a1e25aa48381acfd4736858c5f23878b -# 2be4c50575c05711d30121c3a1320698d3dbb034523c481be3aad3b638af3e0a46113d8c3f8cfc1b0f01e4cc10f32da3a30feca161c31b5b27177aeb7231bf70 -# d4745002643a0168f65bc5b465a9baff59af0fb4783b50553e1a4e8b3f1a569fc4905df19b7743f7f313a5809a5128d997fc4b5e0a0e5db0a01f47b3b7bec39d -# 6ed36f832778926fa614fc12eec97b8f813bbb1a04f709769c9e5f54bc8e3cfc05a110155921a3b2ae47fc8389d24fa2bd385e4ce5a6c94850813791a6ac1c82 -# 944d9ba57968666353df7e9dc78ec5d94b9b052e1abf863b51bc1f372d9f35cb2d93259f153e9ab3b3dd1b520bfcd7bddb54803bcfd9eb65975ae8fb5553663c -# 4ef960e3d6e795adda51d5cbeb18d309fee87ba5cd177292a21b5a70a71a4726ae7053c3793cddc6d63d3b4dacc180ad3ea12d005fc8d63a1bc4cb29f9a17f18 -# c5b8acf06ef6d9a2435e9ddb92cb9fce7cfbfe4a2206b0e0c3c4ed514cc926f8d3c662e694a995d102b5ba939056f93201c220558e06e1cd0872bfb1995ba148 -# 08d86c84a0d80720b22712e878963e90cbb34b659330dad8a823f3c5c7f0ae043d197a5e3020dd7ab4fda3625e17f794675ec074984951e7107db2488898a8d0 -# 5243d7664d30b5aa0c45fbe1089cccdf85c5ade17cddd97e21b3a29ccb37b20d20bdfecc141ad6e1a7aa5ea8ee61695a79a43140a2d53f9f91687bc61f7e496c -# e5106aaaff5f67a693fd49deb7dd52f1cc0f7ba542b33c99c0099bf58f1a33c789d1c5e3803dea2942540c07c734f3ca317c3cc91673aff388cb79ee7112db0b -# b28a299111ac74cc9498f76ce2cb437b2cf5e8e7bb9388d9929347e2948bd56591bd499d5de04638553f6e12fa77c53320a046e96cffce9fa4f8c924d5c91581 -# dbe905f0935b2fea8bb5ba379bff78db9d056ea6d0965c68aa9b07938a52cbbf117186452b2b6c766aa4cf93cc3494ad91b763e8500e515e41d8cde31a3821ae -# 2212babaa9dc46d38ba239052c9c05151abe517cc8b493d0d351a96bf70c1efa4f7479f6ed0b75811429ba649906eb5657d73b0732b460e718a5c66603dcdbda -# ) - -# readonly DEFAULT_FILES_PATH="/usr/lib/code-server/defaults" -# readonly DEFAULT_CONFIG_PATH="/config/addons_config/" -# readonly CODE_SERVER_CONFIG="/root/.config/code-server/config.yaml" - -# # Ensure config path exists -# if [ bashio::config.has_value "config_path" ]; then -# config_path=$(bashio::config 'config_path') -# if ! bashio::fs.directory_exists "${config_path}"; then -# bashio::exit.nok "Configured config path does not exists" -# fi -# else -# # otherwise set to local dir -# config_path="$DEFAULT_CONFIG_PATH" -# if ! bashio::fs.directory_exists "$config_path"; then -# bashio::log.info "Config path did not exist, createing $config_path" -# mkdir -p $config_path || -# bashio::exit.nok "Could not create persistent storage folder." -# fi -# fi - -# bashio::log.info "using code-server config path: $config_path" - -# # Ensure code-server config -# if ! bashio::fs.file_exists $CODE_SERVER_CONFIG; then -# cp "$DEFAULT_FILES_PATH/config.yaml" "$CODE_SERVER_CONFIG" -# fi -# if bashio::config.has_value 'log_level'; then -# sed -i "/log_level=/c log_level=\"$log_level\"" "$CODE_SERVER_CONFIG" -# fi - -# # Ensure extensions path -# ext_path="$config_path/extensions" -# if [ ! -d "$ext_path" ]; then -# mkdir -p $ext_path || -# bashio::exit.nok "Could not create persistent extensions folder." - -# # Only do this on folder create so users can remove faulty extentions. -# # Install code-server extensions via code-server so terminate is aware of them. -# while read -r extention; do -# if [ ! -e $ext_path/$extention* ]; then -# code-server --install-extension="$extention" -# fi -# done <"$DEFAULT_FILES_PATH/vscode.extensions" -# fi -# sed -i "/extensions-dir=/c extensions-dir=\"$ext_path\"" "$CODE_SERVER_CONFIG" - -# # Ensure User settings path -# user_path="$config_path/user" -# if [ ! -d "$user_path" ]; then -# mkdir -p $user_path || -# bashio::exit.nok "Could not create persistent User folder." -# fi -# sed -i "/user-data-dir=/c user-data-dir=\"$user_path\"" "$CODE_SERVER_CONFIG" - -# # Sets up default user settings on first start. -# if ! bashio::fs.file_exists $user_path/settings.json; then -# cp "$DEFAULT_FILES_PATH/settings.json" "$user_path/settings.json" -# else -# # Upgrade if settings.json is still default from previous version. -# current=$(sha512sum $user_path/settings.json | cut -d " " -f 1) -# if [[ " ${PREVIOUS_DEFAULT_CONFIG_HASHES[*]} " == *" ${current} "* ]]; then - -# cp "$DEFAULT_FILES_PATH/settings.json" "$user_path/settings.json" -# fi -# fi - -# if ! bashio::fs.file_exists $user_path/workspaces.json; then -# cp "$DEFAULT_FILES_PATH/workspaces.json" "$user_path/workspaces.json" -# fi - -# exit 0 \ No newline at end of file