mirror of
https://github.com/Llewellynvdm/Tomb.git
synced 2024-11-29 08:14:08 +00:00
better parses for bind-hooks
rw global vars VERSION etc facilitate re-source in test environment
This commit is contained in:
parent
9097a69631
commit
828579e10d
23
tomb
23
tomb
@ -39,9 +39,9 @@
|
|||||||
|
|
||||||
# {{{ Global variables
|
# {{{ Global variables
|
||||||
|
|
||||||
typeset -r VERSION="1.7"
|
typeset VERSION="1.7"
|
||||||
typeset -r DATE="Oct/2014"
|
typeset DATE="Oct/2014"
|
||||||
typeset -r TOMBEXEC=$0
|
typeset TOMBEXEC=$0
|
||||||
|
|
||||||
# Tomb is using some global variables set by the shell:
|
# Tomb is using some global variables set by the shell:
|
||||||
# TMPPREFIX, UID, GID, PATH, TTY, USERNAME
|
# TMPPREFIX, UID, GID, PATH, TTY, USERNAME
|
||||||
@ -1422,7 +1422,6 @@ forge_key() {
|
|||||||
|
|
||||||
lock_tomb_with_key() {
|
lock_tomb_with_key() {
|
||||||
local tombpath="$1" # First argument is the path to the tomb
|
local tombpath="$1" # First argument is the path to the tomb
|
||||||
local tombkey="$2" # Second argument is the path to the key file
|
|
||||||
|
|
||||||
[[ -n $tombpath ]] || {
|
[[ -n $tombpath ]] || {
|
||||||
_warning "No tomb specified for locking."
|
_warning "No tomb specified for locking."
|
||||||
@ -1772,14 +1771,26 @@ exec_safe_bind_hooks() {
|
|||||||
_warning "Cannot exec bind hooks without a mounted tomb."
|
_warning "Cannot exec bind hooks without a mounted tomb."
|
||||||
return 1 }
|
return 1 }
|
||||||
|
|
||||||
[[ ! -r "$mnt/bind-hooks" ]] && {
|
[[ -r "$mnt/bind-hooks" ]] || {
|
||||||
_verbose "bind-hooks not found in ::1 mount point::" $mnt
|
_verbose "bind-hooks not found in ::1 mount point::" $mnt
|
||||||
return 1 }
|
return 1 }
|
||||||
|
|
||||||
typeset -Al maps # Maps of files and directories to mount
|
typeset -Al maps # Maps of files and directories to mount
|
||||||
typeset -al mounted # Track already mounted files and directories
|
typeset -al mounted # Track already mounted files and directories
|
||||||
|
|
||||||
maps=($(<"$mnt/bind-hooks"))
|
# better parsing for bind hooks checks for two separated words on
|
||||||
|
# each line, using zsh word separator array subscript
|
||||||
|
_bindhooks="`cat $mnt/bind-hooks`"
|
||||||
|
for h in ${(f)_bindhooks}; do
|
||||||
|
s="${h[(w)1]}"
|
||||||
|
d="${h[(w)2]}"
|
||||||
|
[[ "$s" = "" ]] && { _warning "bind-hooks file is broken"; return 1 }
|
||||||
|
[[ "$d" = "" ]] && { _warning "bind-hooks file is broken"; return 1 }
|
||||||
|
maps+=($s $d)
|
||||||
|
_verbose "bind-hook found: $s -> $d"
|
||||||
|
done
|
||||||
|
unset _bindhooks
|
||||||
|
|
||||||
for dir in ${(k)maps}; do
|
for dir in ${(k)maps}; do
|
||||||
[[ "${dir[1]}" == "/" || "${dir[1,2]}" == ".." ]] && {
|
[[ "${dir[1]}" == "/" || "${dir[1,2]}" == ".." ]] && {
|
||||||
_warning "bind-hooks map format: local/to/tomb local/to/\$HOME"
|
_warning "bind-hooks map format: local/to/tomb local/to/\$HOME"
|
||||||
|
Loading…
Reference in New Issue
Block a user