summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Hennion <nicolashennion@gmail.com>2019-04-11 13:31:21 +0200
committerGitHub <noreply@github.com>2019-04-11 13:31:21 +0200
commit9b7e7f1ba7ad0477d38ae6462e95e0d7f8b63008 (patch)
treedf98f52b1895f10b551a7d89a0ee03923b95f470
parenta5fc4fda45065786f0e2e6d9b8969720631b4dac (diff)
parent2249251895a09827bf271c9d5f01e187659762dc (diff)
Merge pull request #1464 from Lin-Buo-Ren/patch/snap/support-canonical-config-paths
snap: Support canonical config paths, fixes #1403
-rwxr-xr-xsnap/local/launchers/glances-launch26
-rw-r--r--snap/snapcraft.yaml19
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 3eb887fe..b5d809f3 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
@@ -28,6 +30,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
@@ -51,3 +63,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/