Page MenuHome GnuPG

No OneTemporary

diff --git a/autotests/testenvs/templates/envs.sh b/autotests/testenvs/templates/envs.sh
index 100f3a1..37c9836 100755
--- a/autotests/testenvs/templates/envs.sh
+++ b/autotests/testenvs/templates/envs.sh
@@ -1,213 +1,213 @@
#!/usr/bin/env bash
#
# Generates several gpgpass environments stores (using certs/stores/configs).
#
# main: main test environment with most test cases included
# team: multiple users with multiple stores
# user: single user with one user store
# setup: initial cert setup state with certs but no stores
# clean: initial cert setup state with no certs/stores
# empty: single empty store
# template: custom template preset
#
# Usage: ./envs.sh [<dir>]
#
# dir: path - directory, where the envs will be created (default: `./envs`)
set -eu
source "$(dirname "$0")/utils.sh"
templatesDir="$templatesDir"
certsDir="$certsDir"
storesDir="$storesDir"
filesDir="$filesDir"
users="$users"
# args
scriptName="$(basename "$0")"
envsDir="$(realpath ${1:-"$templatesDir/envs"})"
[ -d $envsDir ] && echo "$envsDir already exist. exiting." >&2 && exit 1
# paths
xdgDirs="config cache data state runtime"
# start
echo -e "> $scriptName: generating envs ...\n"
# configure store
configureStore () { # <name> <user-dir> <store-dir>
- local name="$1" userDir="$2" storeDir="$3"
+ local name="$1" userDir="$2" storeDir="${3/'templates/envs/'/'envs/'}"
# store env to source for pass
sed -e "s#<NAME>#${name}#" \
-e "s#<PATH>#${storeDir}#" \
"$filesDir/store.sh" > "$userDir/store-$name.sh"
# store config for gpgpass
[ "$name" = "new" ] && return
sed -e "s#<UUID>#$(uuidgen)#" \
-e "s#<NAME>#${name^}#" \
-e "s#<PATH>#${storeDir}#" \
"$filesDir/gpgpassrc-store" >> "$userDir/config/gpgpassrc"
}
# env: main
echo "- main"
envDir="$envsDir/main"
envInfo="main test environment with most test cases included"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: team
[ ! -d "$envDir/store-team" ] && cp -a "$storesDir/team" "$envDir/store-team"
- configureStore team "$userDir" "../store-team"
+ configureStore team "$userDir" "$(dirname "$userDir")/store-team"
# store: user
cp -a "$storesDir/user/$user" "$userDir/store-user"
- configureStore user "$userDir" "store-user"
+ configureStore user "$userDir" "$userDir/store-user"
# store: empty
ln -sf "/tmp/gpgpass/stores/main/$user" "$userDir/store-empty"
configureStore empty "$userDir" "/tmp/gpgpass/stores/main/$user"
# store: template
cp -a "$storesDir/template" "$userDir/store-template"
- configureStore template "$userDir" "store-template"
+ configureStore template "$userDir" "$userDir/store-template"
# config: shortcuts
cat "$filesDir/gpgpassrc-shortcuts" >> "$userDir/config/gpgpassrc"
uiDir="$userDir/data/kxmlgui5/gpgpass"; mkdir -p $uiDir
cp "$filesDir/gpgpassui.rc-shortcuts" "$uiDir/gpgpassui.rc"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: team
echo "- team"
envDir="$envsDir/team"
envInfo="multiple users with one shared store"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: team
[ ! -d "$envDir/store-team" ] && cp -a "$storesDir/team" "$envDir/store-team"
- configureStore team "$userDir" "../store-team"
+ configureStore team "$userDir" "$(dirname "$userDir")/store-team"
# config: shortcuts
cat "$filesDir/gpgpassrc-shortcuts" >> "$userDir/config/gpgpassrc"
uiDir="$userDir/data/kxmlgui5/gpgpass"; mkdir -p $uiDir
cp "$filesDir/gpgpassui.rc-shortcuts" "$uiDir/gpgpassui.rc"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: user
echo "- user"
envDir="$envsDir/user"
envInfo="single user with one user store"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: user
cp -a "$storesDir/user/$user" "$userDir/store-user"
- configureStore user "$userDir" "store-user"
+ configureStore user "$userDir" "$userDir/store-user"
# config: shortcuts
cat "$filesDir/gpgpassrc-shortcuts" >> "$userDir/config/gpgpassrc"
uiDir="$userDir/data/kxmlgui5/gpgpass"; mkdir -p $uiDir
cp "$filesDir/gpgpassui.rc-shortcuts" "$uiDir/gpgpassui.rc"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: setup
echo "- setup"
envDir="$envsDir/setup"
envInfo="initial cert setup state with certs but no stores"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: new
- configureStore new "$userDir" "store-new"
+ configureStore new "$userDir" "$userDir/store-new"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: clean
echo "- clean"
envDir="$envsDir/clean"
envInfo="initial cert setup state with no certs/stores"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: empty
ln -sf "/tmp/gpgpass/certs/clean/$user" "$userDir/gnupg"
# store: new
- configureStore new "$userDir" "store-new"
+ configureStore new "$userDir" "$userDir/store-new"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: empty
echo "- empty"
envDir="$envsDir/empty"
envInfo="single empty store"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: empty
ln -sf "/tmp/gpgpass/stores/empty/$user" "$userDir/store-empty"
configureStore empty "$userDir" "/tmp/gpgpass/stores/empty/$user"
# config: shortcuts
cat "$filesDir/gpgpassrc-shortcuts" >> "$userDir/config/gpgpassrc"
uiDir="$userDir/data/kxmlgui5/gpgpass"; mkdir -p $uiDir
cp "$filesDir/gpgpassui.rc-shortcuts" "$uiDir/gpgpassui.rc"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# env: template
echo "- template"
envDir="$envsDir/template"
envInfo="custom template preset matching the testdata"
for user in $users; do
userDir="$envDir/$user"
for xdgDir in $xdgDirs; do mkdir -p "$userDir/$xdgDir"; done
echo "$envInfo" > "$envDir/info"
# certs: user
cp -a "$certsDir/$user" "$userDir/gnupg"
cp -a "$certsDir/all" "$envDir/all"
# store: template
cp -a "$storesDir/template" "$userDir/store-template"
- configureStore template "$userDir" "store-template"
+ configureStore template "$userDir" "$userDir/store-template"
# config: template
cat "$filesDir/gpgpassrc-template" >> "$userDir/config/gpgpassrc"
# config: shortcuts
cat "$filesDir/gpgpassrc-shortcuts" >> "$userDir/config/gpgpassrc"
uiDir="$userDir/data/kxmlgui5/gpgpass"; mkdir -p $uiDir
cp "$filesDir/gpgpassui.rc-shortcuts" "$uiDir/gpgpassui.rc"
# exec
cp "$filesDir/prefix.sh" "$userDir/"
cp "$filesDir/gpgpass" "$userDir/"; chmod u+x "$userDir/gpgpass"
done
# end
echo -e "\n> $scriptName: done."

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 3, 5:37 AM (10 h, 18 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f8/43/025bf9baedba5dcf5fcd7c34b082

Event Timeline