Последняя активность 2 months ago

Bash functions to have at initialization of shell session

Версия 33500fd87a0e74c53bd8d25a233067329ff96b23

gcfs.sh Исходник
1#!/bin/bash
2set -euo pipefail
3
4source .env
5GOCRYPTFS_PASSFILE=${GOCRYPTFS_ROOT_DIR:-~/.keys/gocrypts}/gocryptfs.key
6GOCRYPTFS_OUTPUT_MOUNT=${GOCRYPTFS_MOUNT_ROOT:-~/.mnt}
7
8overlay-mount () {
9 if [ "$1" == "data" ]; then
10 GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/data-cipher/gocryptfs.conf"
11
12 if [ -v "$2" ]; then
13 GOCRYPTFS_VAULT="${HOME}/.${2}"
14
15
16 if ! [ -f "${HOME}/.mnt/${2}" ]; then
17 mkdir -p "${HOME}/.mnt/${2}"
18 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
19 fi
20 else
21 GOCRYPTFS_VAULT=~/.data
22
23 if ! [ -f ~/.mnt/data ]; then
24 mkdir -p ~/.mnt/data
25 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/data"
26 fi
27 fi
28 fi
29
30 if [ "$1" == "classified" ]; then
31 GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/secret-cipher/gocryptfs.conf"
32
33 if [ -v "$2" ]; then
34 GOCRYPTFS_VAULT_ARG="${HOME}/Documents/.${2}"
35
36 if ! [ -f "${HOME}/.mnt/${2}" ]; then
37 mkdir -p "${HOME}/.mnt/${2}"
38 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
39 fi
40 else
41 GOCRYPTFS_VAULT_ARG=~/Documents/.secret
42
43 if ! [ -f ~/.mnt/classified ]; then
44 mkdir -p ~/.mnt/classified
45 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/classified"
46 fi
47 fi
48 fi
49
50 if [ "$1" == "works-in-progress" ]; then
51 GOCRYPTFS_CONFIG="${GOCRYPTFS_ROOT_DIR}/wip-cipher/gocryptfs.conf"
52
53 if [ -v "$2" ]; then
54 GOCRYPTFS_VAULT="${HOME}/Portfolio/.${2}"
55
56 if ! [ -f "${HOME}/.mnt/${2}" ]; then
57 mkdir -p "${HOME}/.mnt/${2}"
58 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/${2}"
59 fi
60 else
61 GOCRYPTFS_VAULT=~/Portfolio/.wip
62
63 if ! [ -f ~/.mnt/works-in-progress ]; then
64 mkdir -p ~/.mnt/works-in-progress
65 GOCRYPTFS_VOLUME="${GOCRYPTFS_OUTPUT_MOUNT}/works-in-progress"
66 fi
67 fi
68 fi
69
70 gocryptfs -config "$GOCRYPTFS_CONFIG" -passfile "$GOCRYPTFS_PASSFILE" "$GOCRYPTFS_VAULT" "$GOCRYPTFS_VOLUME"
71}
72
73overlay-umount () {
74 if [ -v "$1" ]; then
75 GOCRYPTFS_PLAIN="${GOCRYPTFS_OUTPUT_MOUNT}/${1}"
76 else
77 exit 1
78 fi
79
80 fusermount -u "$GOCRYPTFS_PLAIN"
81}