updated on Thu Jan 19 00:16:31 UTC 2012
[aur-mirror.git] / nwn / libnwn.sh
blob87d475b4b2fb902e351eaef9f1a8df3edbd6c0cd
1 nwn.run() {
2 local -r APP_NAME="nwn"
3 local -r TMPDIR="${TMPDIR:-/tmp}"
4 local RW_BRANCH="${RW_BRANCH:-${XDG_DATA_HOME}/${APP_NAME}}"
5 local -r APP_DIR="${TMPDIR}/${APP_NAME}-tmp-${USER}"
6 local -r CONF_DIR="/etc/${APP_NAME}"
7 local -r BRANCHES_D="/etc/${APP_NAME}/branches.d"
8 local __firstRun=false
10 if [ ! -d "${RW_BRANCH}" ]; then
11 __firstRun=true
14 mkdir -p "${RW_BRANCH}" "${APP_DIR}" &&
15 { findmnt "${APP_DIR}" || RW_BRANCH="${RW_BRANCH}" modfs -o cow -o "uid=${UID}" -o "gid=${GROUPS[0]}" "${BRANCHES_D}" "${APP_DIR}"; } &&
16 cd "${APP_DIR}" &&
17 "$@"
19 cd / &&
20 fusermount -u "${APP_DIR}" &&
21 rmdir "${APP_DIR}"
24 nwn.exec() {
25 local -r EXEC_NAME=$(basename "${1}")
26 local -r EXEC_D="${CONF_DIR}/hooks.d"
27 local -r EXEC_PREFIX="nwn.hooks.${EXEC_NAME}."
28 if [ -d "${EXEC_D}" ]; then
29 local f
30 for f in "${EXEC_D}/"*.sh; do
31 [ -f "${f}" ] && source "${f}"
32 done
34 local -a commandLine=($(compgen -A function "${EXEC_PREFIX}") "${@}")
35 "${commandLine[@]}"
38 nwn.firstRun() {
39 "${__firstRun}"