diff options
author | 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com> | 2019-04-10 17:35:42 +0800 |
---|---|---|
committer | 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com> | 2019-04-10 17:35:42 +0800 |
commit | 2249251895a09827bf271c9d5f01e187659762dc (patch) | |
tree | 9bcb575e5972ba5f250168041f28826aa3c1ae5f /snap | |
parent | f9ae1eb7dcade254526de6ada7c19e5634f52520 (diff) |
snap: Support canonical config paths, fixes #1403
This patch supports canonical config paths by the help of the
`personal-files` and the `system-files` security confinement interfaces.
Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
Diffstat (limited to 'snap')
-rwxr-xr-x | snap/local/launchers/glances-launch | 26 | ||||
-rw-r--r-- | snap/snapcraft.yaml | 19 |
2 files changed, 44 insertions, 1 deletions
diff --git a/snap/local/launchers/glances-launch b/snap/local/launchers/glances-launch new file mode 100755 index 00000000..2b79fca2 --- /dev/null +++ b/snap/local/launchers/glances-launch @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# This is the maintainence launcher for the snap, make necessary runtime +# environment changes to make the snap work here. You may also insert +# security confinement/deprecation/obsoletion notice of the snap here. +set \ + -o errexit \ + -o errtrace \ + -o nounset \ + -o pipefail + +# Use user's real home directory for canonical configuration path access +HOME="$( + getent passwd "${USER}" \ + | cut --delimiter=: --fields=6 +)" + +# Use snap's own folder for cache directory +declare XDG_CACHE_HOME +mkdir \ + --parents \ + "${SNAP_USER_DATA}"/.cache +XDG_CACHE_HOME="${SNAP_USER_DATA}"/.cache +export XDG_CACHE_HOME + +# Finally run the next part of the command chain +exec "${@}" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index eb2f5ee1..4cb8a959 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -12,7 +12,9 @@ confinement: strict apps: glances: - command: bin/glances + command: > + bin/glances-launch + $SNAP/bin/glances plugs: - network - system-observe @@ -27,6 +29,16 @@ apps: LANG: C.UTF-8 LC_ALL: C.UTF-8 +plugs: + home-glances-config: + interface: personal-files + read: + - $HOME/.config/glances/glances.conf + etc-glances-config: + interface: system-files + read: + - /etc/glances/glances.conf + parts: glances: plugin: python @@ -50,3 +62,8 @@ parts: source: https://github.com/docker/docker-py.git source-tag: '3.7.0' source-depth: 1 + launchers: + source: snap/local/launchers + plugin: dump + organize: + '*': bin/ |