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>
This commit is contained in:
林博仁(Buo-ren Lin) 2019-04-10 17:35:42 +08:00
parent f9ae1eb7dc
commit 2249251895
2 changed files with 44 additions and 1 deletions

View File

@ -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 "${@}"

View File

@ -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/