diff --git a/vscode/Dockerfile b/vscode/Dockerfile index 9d553e1..bdf377f 100644 --- a/vscode/Dockerfile +++ b/vscode/Dockerfile @@ -79,7 +79,7 @@ WORKDIR /SERVER/ # Install Python packages RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && \ - pip3 install --no-cache-dir -r /var/lib/code-server/defaults/requirements.txt + pip3 install --no-cache-dir -r /var/lib/code-server/defaults/core/requirements.txt # Cleanup apt cache RUN apt-get purge -y --auto-remove \ 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 index 5715f67..7a1c297 100644 --- 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 @@ -29,10 +29,11 @@ readonly CODE_SERVER_EXTENSIONS_INSTALL_PATH="$DEFAULT_CONFIG_PATH/extensions" readonly CODE_SERVER_EXTENSIONS_LIST="$DEFAULT_CONFIG_PATH/vscode.extensions" readonly CODE_SERVER_WORKSPACE_DIR="$DEFAULT_CONFIG_PATH/workspace" readonly CODE_SERVER_WORKSPACE_FILE="$CODE_SERVER_WORKSPACE_DIR/SERVER.code-workspace" - +readonly CODE_SERVER_VSCODE_DIR="$DEFAULT_CONFIG_PATH/workspace" +readonly CODE_SERVER_VSCODE_TASKS="$CODE_SERVER_VSCODE_DIR/tasks.json" readonly -a DIRECTORIES=(addons addon_configs backup config media share ssl) -CODE_SERVER_CONFIG="$DEFAULT_CONFIG_PATH/config.yaml" +CODE_SERVER_CONFIG="$DEFAULT_CONFIG_PATH/core/config.yaml" run() { setup_clean_view @@ -47,11 +48,11 @@ run() { setup_clean_view() { # Links some common directories to the user's home folder for convenience for dir in "${DIRECTORIES[@]}"; do - ln -sn "/${dir}" "/SERVER/${dir}" || + ln -sn "/${dir}" "${CODE_SERVER_WORKSPACE_DIR}"/"${dir}" || bashio::log.warning "Failed linking common directory: ${dir}" done - ln -sn "/data" "/SERVER/code-server-config" || + ln -sn "/data" "${CODE_SERVER_WORKSPACE_DIR}"/code-server-config || bashio::log.warning "Failed linking common directory: ${dir}" } @@ -63,8 +64,19 @@ setup_code_workspace() { # Copies the default workspace if [ ! -e "$CODE_SERVER_WORKSPACE_FILE" ]; then - bashio::log.warning "CODE_SERVER_WORKSPACE_FILE does not exist.." - cp "$DEFAULT_FILES_PATH/SERVER.code-workspace" "$CODE_SERVER_WORKSPACE_FILE" + bashio::log.warning "CODE_SERVER_WORKSPACE_FILE does not exist. Creating..." + cp "$DEFAULT_FILES_PATH/vscode/SERVER.code-workspace" "$CODE_SERVER_WORKSPACE_FILE" + fi + + # .vscode dir + if [ ! -d "$CODE_SERVER_VSCODE_DIR" ]; then + mkdir -p "$CODE_SERVER_VSCODE_DIR" + fi + + # tasks.json + if [ ! -e "$CODE_SERVER_VSCODE_TASKS" ]; then + bashio::log.warning "CODE_SERVER_WORKSPACE_FILE does not exist. Creating..." + cp "$DEFAULT_FILES_PATH/vscode/tasks.json" "$CODE_SERVER_VSCODE_TASKS" fi export CODE_SERVER_WORKSPACE_FILE @@ -80,7 +92,7 @@ setup_config_path() { else # otherwise set to local dir if ! bashio::fs.directory_exists "$DEFAULT_CONFIG_PATH"; then - bashio::log.warning "Config path did not exist, creating $DEFAULT_CONFIG_PATH" + bashio::log.warning "Config path does not exist. Creating... " mkdir -p "$DEFAULT_CONFIG_PATH" || bashio::exit.nok "Could not create persistent storage folder." fi @@ -92,8 +104,8 @@ setup_config_path() { setup_config_files() { # Ensure code-server config if [ ! -e "$CODE_SERVER_CONFIG" ]; then - bashio::log.warning "CODE_SERVER_CONFIG does not exist.." - cp "$DEFAULT_FILES_PATH/config.yaml" "$CODE_SERVER_CONFIG" + bashio::log.warning "CODE_SERVER_CONFIG does not exist. Creating..." + cp "$DEFAULT_FILES_PATH/core/config.yaml" "$CODE_SERVER_CONFIG" fi # Set a link to where code-server expects the config to be @@ -106,12 +118,12 @@ setup_config_files() { setup_extensions() { # Ensure extensions path if [ ! -e "$CODE_SERVER_EXTENSIONS_LIST" ]; then - bashio::log.warning "CODE_SERVER_EXTENSIONS_LIST does not exist.." - cp "$DEFAULT_FILES_PATH/vscode.extensions" "$CODE_SERVER_EXTENSIONS_LIST" + bashio::log.warning "CODE_SERVER_EXTENSIONS_LIST does not exist. Creating...." + cp "$DEFAULT_FILES_PATH/vscode/vscode.extensions" "$CODE_SERVER_EXTENSIONS_LIST" fi if [ ! -d "$CODE_SERVER_EXTENSIONS_INSTALL_PATH" ]; then - bashio::log.warning "CODE_SERVER_EXTENSIONS_INSTALL_PATH does not exist.." + bashio::log.warning "CODE_SERVER_EXTENSIONS_INSTALL_PATH does not exist. Creating..." mkdir -p "$CODE_SERVER_EXTENSIONS_INSTALL_PATH" || bashio::exit.nok "Could not create persistent extensions folder." touch "$CODE_SERVER_EXTENSIONS_INSTALL_PATH"/extensions.json @@ -157,19 +169,19 @@ set_user_settings() { # 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" + cp "$DEFAULT_FILES_PATH/vscode/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" + cp "$DEFAULT_FILES_PATH/vscode/settings.json" "$user_path/settings.json" fi fi sed -i "/user-data-dir:/c user-data-dir: \"$user_path\"" "$CODE_SERVER_CONFIG" if ! bashio::fs.file_exists "$user_path"/workspaces.json; then - cp "$DEFAULT_FILES_PATH/workspaces.json" "$user_path/workspaces.json" + cp "$DEFAULT_FILES_PATH/vscode/workspaces.json" "$user_path/workspaces.json" fi } diff --git a/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-custom-bash/run b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-custom-bash/run index 2b056ed..6949e7f 100644 --- a/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-custom-bash/run +++ b/vscode/rootfs/etc/s6-overlay/s6-rc.d/init-custom-bash/run @@ -8,11 +8,11 @@ bashio::log.info "Initalizing code-server configs" # List of previous config hashes, to allow upgrade "default" configs. readonly CUSTOM_BASH_SCRIPTS_PATH="/data/custom" -readonly DEFAULT_FILES_PATH="/var/lib/code-server/defaults" +readonly DEFAULT_FILES_PATH="/var/lib/code-server/defaults/core" run() { if [ ! -d "$CUSTOM_BASH_SCRIPTS_PATH" ]; then - bashio::log.warning "CUSTOM_BASH_SCRIPTS_PATH path did not exist, creating $CUSTOM_BASH_SCRIPTS_PATH" + bashio::log.warning "CUSTOM_BASH_SCRIPTS_PATH path does not exist. Creating..." mkdir -p "$CUSTOM_BASH_SCRIPTS_PATH" || bashio::exit.nok "Could not create persistent storage folder." fi diff --git a/vscode/rootfs/var/lib/code-server/defaults/config.yaml b/vscode/rootfs/var/lib/code-server/defaults/core/config.yaml similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/config.yaml rename to vscode/rootfs/var/lib/code-server/defaults/core/config.yaml diff --git a/vscode/rootfs/var/lib/code-server/defaults/custom-template.sh b/vscode/rootfs/var/lib/code-server/defaults/core/custom-template.sh similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/custom-template.sh rename to vscode/rootfs/var/lib/code-server/defaults/core/custom-template.sh diff --git a/vscode/rootfs/var/lib/code-server/defaults/requirements.txt b/vscode/rootfs/var/lib/code-server/defaults/core/requirements.txt similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/requirements.txt rename to vscode/rootfs/var/lib/code-server/defaults/core/requirements.txt diff --git a/vscode/rootfs/var/lib/code-server/defaults/SERVER.code-workspace b/vscode/rootfs/var/lib/code-server/defaults/vscode/SERVER.code-workspace similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/SERVER.code-workspace rename to vscode/rootfs/var/lib/code-server/defaults/vscode/SERVER.code-workspace diff --git a/vscode/rootfs/var/lib/code-server/defaults/settings.json b/vscode/rootfs/var/lib/code-server/defaults/vscode/settings.json similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/settings.json rename to vscode/rootfs/var/lib/code-server/defaults/vscode/settings.json diff --git a/vscode/rootfs/var/lib/code-server/defaults/vscode/tasks.json b/vscode/rootfs/var/lib/code-server/defaults/vscode/tasks.json new file mode 100644 index 0000000..3d35f44 --- /dev/null +++ b/vscode/rootfs/var/lib/code-server/defaults/vscode/tasks.json @@ -0,0 +1,9 @@ +{ + "version": "2.0.0", + "tasks": [ + { + + } + ] + } + diff --git a/vscode/rootfs/var/lib/code-server/defaults/vscode.extensions b/vscode/rootfs/var/lib/code-server/defaults/vscode/vscode.extensions similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/vscode.extensions rename to vscode/rootfs/var/lib/code-server/defaults/vscode/vscode.extensions diff --git a/vscode/rootfs/var/lib/code-server/defaults/workspaces.json b/vscode/rootfs/var/lib/code-server/defaults/vscode/workspaces.json similarity index 100% rename from vscode/rootfs/var/lib/code-server/defaults/workspaces.json rename to vscode/rootfs/var/lib/code-server/defaults/vscode/workspaces.json