Add support for setting the default configuration path

This commit is contained in:
Franck Nijhof 2020-09-15 10:19:06 +02:00
parent 97c35599ad
commit 35cad4b5fd
No known key found for this signature in database
GPG key ID: D62583BA8AB11CA3
4 changed files with 37 additions and 12 deletions

View file

@ -31,6 +31,7 @@ Example add-on configuration:
```yaml
log_level: info
config_path: /share/my_path
packages:
- mariadb-client
init_commands:
@ -57,6 +58,14 @@ more severe level, e.g., `debug` also shows `info` messages. By default,
the `log_level` is set to `info`, which is the recommended setting unless
you are troubleshooting.
### Option: `config_path`
This option allows you to override the default path the add-on will open
when accessing the web interface. For example, use a different
configuration directory like `/share/myconfig` instead of `/config`.
When not configured, the addon will automatically use the default: `/config`
### Option: `packages`
Allows you to specify additional [Ubuntu packages][ubuntu-packages] to be
@ -143,12 +152,12 @@ functionality. The format of the log is based on
[Keep a Changelog][keepchangelog].
Releases are based on [Semantic Versioning][semver], and use the format
of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
based on the following:
- ``MAJOR``: Incompatible or major changes.
- ``MINOR``: Backwards-compatible new features and enhancements.
- ``PATCH``: Backwards-compatible bugfixes and package updates.
- `MAJOR`: Incompatible or major changes.
- `MINOR`: Backwards-compatible new features and enhancements.
- `PATCH`: Backwards-compatible bugfixes and package updates.
## Support

View file

@ -30,6 +30,7 @@
},
"schema": {
"log_level": "list(trace|debug|info|notice|warning|error|fatal)?",
"config_path": "str?",
"packages": ["str"],
"init_commands": ["str"]
}

View file

@ -3,6 +3,7 @@
# Home Assistant Community Add-on: Visual Studio Code
# Sets up code-server.
# ==============================================================================
declare config_path
# List of previous config hashes, to allow upgrade "default" configs.
readonly -a PREVIOUS_DEFAULT_CONFIG_HASHES=(
@ -16,6 +17,13 @@ readonly -a PREVIOUS_DEFAULT_CONFIG_HASHES=(
08d86c84a0d80720b22712e878963e90cbb34b659330dad8a823f3c5c7f0ae043d197a5e3020dd7ab4fda3625e17f794675ec074984951e7107db2488898a8d0
)
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
fi
# Ensure persistent data folder exists.
if ! bashio::fs.directory_exists '/data/vscode'; then
mkdir -p /data/vscode/extensions \

View file

@ -4,9 +4,15 @@
# Runs the code server
# ==============================================================================
declare -a options
declare config_path
bashio::log.info 'Starting the code server...'
config_path="/config"
if bashio::config.has_value 'config_path'; then
config_path=$(bashio::config 'config_path')
fi
options+=(--port 1337)
options+=(--user-data-dir "/data/vscode")
options+=(--extra-builtin-extensions-dir "/root/.code-server/extensions/")
@ -22,4 +28,5 @@ export HASS_SERVER="http://supervisor/core"
export HASS_TOKEN="${SUPERVISOR_TOKEN:-}"
# Run the code server
exec code-server "${options[@]}" /config
cd "${config_path}"
exec code-server "${options[@]}" "${config_path}"