mirror of
https://github.com/hassio-addons/addon-vscode.git
synced 2025-05-03 18:51:23 +00:00
devenv
This commit is contained in:
parent
15396614f8
commit
bd40d360da
11 changed files with 39 additions and 18 deletions
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue