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
29a56f36d8
commit
7cb8d61844
5 changed files with 90 additions and 50 deletions
|
@ -97,6 +97,21 @@ setup_code_workspace() {
|
|||
bashio::log.warning "CODE_SERVER_VSCODE_TASKS does not exist. Creating..."
|
||||
cp "$DEFAULT_FILES_PATH/vscode/tasks.json" "$CODE_SERVER_VSCODE_TASKS"
|
||||
fi
|
||||
|
||||
# custom tasks paths file
|
||||
CUSTOM_BASH_SCRIPTS_PATH_SYMLINK="$CUSTOM_BASH_SCRIPTS_PATH/PATHS.sh"
|
||||
if [ ! -e "$CUSTOM_BASH_SCRIPTS_PATH_SYMLINK" ]; then
|
||||
bashio::log.warning "CUSTOM_BASH_SCRIPTS_PATH_ does not exist. Creating..."
|
||||
ln -sn "/etc/s6-overlay/s6-rc.d/paths.sh" "$CUSTOM_BASH_SCRIPTS_PATH_SYMLINK" ||
|
||||
bashio::log.warning "Failed linking PATHS.sh"
|
||||
elif [ ! -L "$CUSTOM_BASH_SCRIPTS_PATH_SYMLINK" ]; then
|
||||
bashio::log.warning "Failed path.sh link: Removing and recreating..."
|
||||
rm -f"$CUSTOM_BASH_SCRIPTS_PATH_SYMLINK"
|
||||
ln -sn "/etc/s6-overlay/s6-rc.d/paths.sh" "$CUSTOM_BASH_SCRIPTS_PATH_SYMLINK" ||
|
||||
bashio::log.warning "Failed linking PATHS.sh"
|
||||
else
|
||||
bashio::log.info "Custom scripts symlink has a good link..."
|
||||
fi
|
||||
}
|
||||
|
||||
setup_config_path() {
|
||||
|
@ -201,7 +216,6 @@ setup_user_settings() {
|
|||
if ! bashio::fs.file_exists "$user_path"/workspaces.json; then
|
||||
cp "$DEFAULT_FILES_PATH/vscode/workspaces.json" "$user_path/workspaces.json"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
run
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
# Sets up code-server.
|
||||
# ==============================================================================
|
||||
bashio::log.info "Initalizing code-server configs"
|
||||
|
||||
pathsfile="/etc/s6-overlay/s6-rc.d/paths.sh"
|
||||
# shellcheck source=../paths.sh
|
||||
source "/etc/s6-overlay/s6-rc.d/paths.sh"
|
||||
source "${pathsfile}"
|
||||
|
||||
# List of previous config hashes, to allow upgrade "default" configs.
|
||||
|
||||
|
@ -29,7 +29,8 @@ run() {
|
|||
fi
|
||||
|
||||
if [ "$(ls -A "$CUSTOM_BASH_SCRIPTS_PATH")" ]; then
|
||||
for script in "${CUSTOM_BASH_SCRIPTS_PATH}"/*.sh; do
|
||||
for script in "${CUSTOM_BASH_SCRIPTS_PATH}"/*.sh/!"$pathsfile"; do
|
||||
|
||||
echo "Running custom script: $script"
|
||||
chmod +x "$script"
|
||||
"$script"
|
||||
|
|
|
@ -9,46 +9,59 @@ readonly SSH_USER_PATH=/data/.ssh
|
|||
readonly ZSH_HISTORY_FILE=/root/.zsh_history
|
||||
readonly ZSH_HISTORY_PERSISTANT_FILE=/data/.zsh_history
|
||||
|
||||
# Store SSH settings in add-on data folder
|
||||
if ! bashio::fs.directory_exists "${SSH_USER_PATH}"; then
|
||||
run() {
|
||||
setup_ssh
|
||||
setup_zsh
|
||||
setup_git
|
||||
setup_config_packages
|
||||
exec_config_cmds
|
||||
}
|
||||
|
||||
setup_ssh() {
|
||||
# Store SSH settings in add-on data folder
|
||||
if ! bashio::fs.directory_exists "${SSH_USER_PATH}"; then
|
||||
mkdir -p "${SSH_USER_PATH}" ||
|
||||
bashio::exit.nok 'Failed to create a persistent .ssh folder'
|
||||
|
||||
chmod 700 "${SSH_USER_PATH}" ||
|
||||
bashio::exit.nok \
|
||||
'Failed setting permissions on persistent .ssh folder'
|
||||
fi
|
||||
ln -sn "${SSH_USER_PATH}" ~/.ssh || bashio::log.warning "Failed linking .ssh"
|
||||
fi
|
||||
ln -sn "${SSH_USER_PATH}" ~/.ssh || bashio::log.warning "Failed linking .ssh"
|
||||
}
|
||||
|
||||
# Sets up ZSH shell
|
||||
touch "${ZSH_HISTORY_PERSISTANT_FILE}" ||
|
||||
setup_zsh() {
|
||||
# Sets up ZSH shell
|
||||
touch "${ZSH_HISTORY_PERSISTANT_FILE}" ||
|
||||
bashio::exit.nok 'Failed creating a persistent ZSH history file'
|
||||
|
||||
chmod 600 "$ZSH_HISTORY_PERSISTANT_FILE" ||
|
||||
bashio::exit.nok \
|
||||
'Failed setting the correct permissions to the ZSH history file'
|
||||
chmod 600 "$ZSH_HISTORY_PERSISTANT_FILE" ||
|
||||
bashio::exit.nok 'Failed setting the correct permissions to the ZSH history file'
|
||||
|
||||
ln -s -f "$ZSH_HISTORY_PERSISTANT_FILE" "$ZSH_HISTORY_FILE" ||
|
||||
ln -s -f "$ZSH_HISTORY_PERSISTANT_FILE" "$ZSH_HISTORY_FILE" ||
|
||||
bashio::exit.nok 'Failed linking the persistant ZSH history file'
|
||||
}
|
||||
|
||||
# Store user GIT settings in add-on data folder
|
||||
if ! bashio::fs.directory_exists "${GIT_USER_PATH}"; then
|
||||
setup_git() {
|
||||
# Store user GIT settings in add-on data folder
|
||||
if ! bashio::fs.directory_exists "${GIT_USER_PATH}"; then
|
||||
mkdir -p "${GIT_USER_PATH}" ||
|
||||
bashio::exit.nok 'Failed to create a persistent git folder'
|
||||
|
||||
chmod 700 "${GIT_USER_PATH}" ||
|
||||
bashio::exit.nok \
|
||||
'Failed setting permissions on persistent git folder'
|
||||
fi
|
||||
bashio::exit.nok 'Failed setting permissions on persistent git folder'
|
||||
fi
|
||||
|
||||
if ! bashio::fs.file_exists "${GIT_USER_PATH}/.gitconfig"; then
|
||||
if ! bashio::fs.file_exists "${GIT_USER_PATH}/.gitconfig"; then
|
||||
touch "${GIT_USER_PATH}/.gitconfig" ||
|
||||
bashio::exit.nok 'Failed to create .gitconfig'
|
||||
fi
|
||||
ln -s "${GIT_USER_PATH}/.gitconfig" ~/.gitconfig || bashio::log.warning "Failed linking .gitconfig"
|
||||
fi
|
||||
ln -s "${GIT_USER_PATH}/.gitconfig" ~/.gitconfig || bashio::log.warning "Failed linking .gitconfig"
|
||||
}
|
||||
|
||||
# Install user configured/requested packages
|
||||
if bashio::config.has_value 'packages'; then
|
||||
setup_config_packages() {
|
||||
# Install user configured/requested packages
|
||||
if bashio::config.has_value 'packages'; then
|
||||
apt update ||
|
||||
bashio::exit.nok 'Failed updating Ubuntu packages repository indexes'
|
||||
|
||||
|
@ -56,12 +69,17 @@ if bashio::config.has_value 'packages'; then
|
|||
apt-get install -y "$package" ||
|
||||
bashio::exit.nok "Failed installing package ${package}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Executes user configured/requested commands on startup
|
||||
if bashio::config.has_value 'init_commands'; then
|
||||
exec_config_cmds() {
|
||||
# Executes user configured/requested commands on startup
|
||||
if bashio::config.has_value 'init_commands'; then
|
||||
while read -r cmd; do
|
||||
eval "${cmd}" ||
|
||||
bashio::exit.nok "Failed executing init command: ${cmd}"
|
||||
done <<<"$(bashio::config 'init_commands')"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
run
|
||||
|
|
|
@ -14,3 +14,8 @@ readonly CODE_SERVER_VSCODE_TASKS="$CODE_SERVER_VSCODE_DIR/tasks.json"
|
|||
|
||||
readonly CUSTOM_BASH_SCRIPTS_PATH="/data/vscode/custom_boot_scripts"
|
||||
readonly -a DIRECTORIES=(backup config media share ssl)
|
||||
|
||||
readonly GIT_USER_PATH=/data/git
|
||||
readonly SSH_USER_PATH=/data/.ssh
|
||||
readonly ZSH_HISTORY_FILE=/root/.zsh_history
|
||||
readonly ZSH_HISTORY_PERSISTANT_FILE=/data/.zsh_history
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
ENABLE=false
|
||||
# shellcheck source=../paths.sh
|
||||
source "/etc/s6-overlay/s6-rc.d/paths.sh"
|
||||
|
||||
if [ "$ENABLE" = true ]; then
|
||||
echo "Custom Script"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue