mirror of
https://github.com/Llewellynvdm/Tomb.git
synced 2024-11-29 08:14:08 +00:00
undertaker cleanups
merging boyska's branch to current master changes some previous names of options: --path --batch --poll work in progress, refers to issues: #71 #70 #69 #58 #42 #27 #5
This commit is contained in:
parent
c3006f5037
commit
be0c9ce718
15
doc/tomb.1
15
doc/tomb.1
@ -135,11 +135,10 @@ mount a tomb read-only (ro) to prevent any modification of its data,
|
||||
or to experiment with other settings (if you really know what you are
|
||||
doing) see the mount(8) man page.
|
||||
.B
|
||||
.IP "--ignore-swap"
|
||||
By default, Tomb will abort any create and open operation if swap is used (see
|
||||
SWAP section for details). This flag will disable this behaviour. NOTE: it is
|
||||
not secure to do so, unless you know that your swap is encrypted
|
||||
|
||||
.IP "-f"
|
||||
Force flag, currently used to override swap checks, might be
|
||||
overriding more wimpy behaviours in future, but make sure you know
|
||||
what you are doing if you force an operation...
|
||||
.B
|
||||
.IP "-h"
|
||||
Display a help text and quit
|
||||
@ -154,10 +153,8 @@ Run more quietly
|
||||
Print more information while running, for debugging purposes
|
||||
.B
|
||||
.IP "--no-color"
|
||||
Don't use colors; useful for old terminals or integration in other scripts
|
||||
.B
|
||||
.IP "--machine-parseable"
|
||||
The output is easily parseable via software. This implies --no-color
|
||||
Don't use colors; useful for old terminals or integration in other
|
||||
scripts parsers
|
||||
|
||||
|
||||
.SH HOOKS
|
||||
|
8
src/tomb
8
src/tomb
@ -124,9 +124,7 @@ progress() {
|
||||
# progress create 80 please enter password
|
||||
# progress create 90 formatting the tomb
|
||||
# progress create 100 tomb created successfully
|
||||
local -a prog_opts
|
||||
zparseopts -a prog_opts -D -E -machine-parseable
|
||||
if ! option_is_set --machine-parseable; then
|
||||
if ! option_is_set --batch; then
|
||||
return
|
||||
fi
|
||||
print "[m][P][$1][$2][$3]" >&2
|
||||
@ -1683,10 +1681,6 @@ main() {
|
||||
shift
|
||||
fi
|
||||
### End parsing command-specific options
|
||||
|
||||
if option_is_set --machine-parseable; then
|
||||
opts[--no-color]=''
|
||||
fi
|
||||
if ! option_is_set --no-color; then
|
||||
autoload colors; colors
|
||||
fi
|
||||
|
@ -6,7 +6,8 @@
|
||||
#
|
||||
# Undertaker is a tool to retrieve tomb keys from various sources
|
||||
#
|
||||
# {{{ Copyleft (C) 2011 Denis Roio <jaromil@dyne.org>
|
||||
# {{{ Copyleft (C) 2012 Dyne.org foundation
|
||||
# 2011-2012 Denis Roio <jaromil@dyne.org>
|
||||
#
|
||||
# This source code is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by
|
||||
@ -24,6 +25,10 @@
|
||||
|
||||
# }}}
|
||||
|
||||
# signal traps (special funcs in Zsh)
|
||||
TRAPKILL() die "KILL signal caught, undertaker aborting."
|
||||
TRAPSTOP() die "STOP signal caught, undertaker aborting."
|
||||
|
||||
# first of all source the tomb core functions
|
||||
which tomb > /dev/null
|
||||
if [[ $? != 0 ]]; then
|
||||
@ -38,6 +43,8 @@ key_found() {
|
||||
print "$fg[white][found] $1"
|
||||
}
|
||||
|
||||
|
||||
|
||||
function undertaker_scheme() {
|
||||
zparseopts -D -print-path=print_path
|
||||
|
||||
@ -46,6 +53,8 @@ function undertaker_scheme() {
|
||||
local keypath
|
||||
keypath=$2
|
||||
case $scheme in
|
||||
|
||||
|
||||
bluetooth)
|
||||
#TODO: support --print-path
|
||||
act "access to bluetooth protocol requested"
|
||||
@ -68,14 +77,22 @@ function undertaker_scheme() {
|
||||
die "a problem occurred retreiving the key via bluetooth."
|
||||
fi
|
||||
# print out the key on stdout
|
||||
cat $obexpath >&1
|
||||
if option_is_set --path; then
|
||||
echo $obexpath
|
||||
# up to the caller to delete the key
|
||||
# TODO: --path should have the directory where to put the key
|
||||
# as argument, instead of creating keytmp
|
||||
else
|
||||
cat `pwd`/$obexpath >&1
|
||||
# wipe out the key
|
||||
${WIPE[@]} $obexpath
|
||||
cd -
|
||||
rmdir ${keytmp}
|
||||
fi
|
||||
|
||||
# tombkey="basename $obexpath"
|
||||
;;
|
||||
|
||||
file)
|
||||
if ! [[ -f $keypath ]]; then
|
||||
error "Invalid path $keypath"
|
||||
@ -100,6 +117,7 @@ function undertaker_scheme() {
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
udisks)
|
||||
#It implements automounting using udisks; udisks is a (recently)
|
||||
#new technology, so we can't rely on it being present
|
||||
@ -121,10 +139,14 @@ function undertaker_scheme() {
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
near)
|
||||
###Given the path to the tomb, search the key near to that
|
||||
undertaker_scheme file ${keypath}.key
|
||||
;;
|
||||
|
||||
|
||||
|
||||
*)
|
||||
if ! which undertaker-$scheme &> /dev/null; then
|
||||
error "url protocol not recognized: $scheme"
|
||||
@ -135,21 +157,22 @@ function undertaker_scheme() {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function main() {
|
||||
typeset -A opts
|
||||
zparseopts -M -E -D -Aopts -poll -print-path -machine-parseable
|
||||
zparseopts -M -E -D -Aopts -poll -path -batch
|
||||
if ! [ $1 ] ; then
|
||||
error "an argument is missing, the undertaker is confused"
|
||||
act "usage: undertaker [options] url://host:path/to/tomb.key"
|
||||
exit 1;
|
||||
fi
|
||||
local -a tomb_opts
|
||||
if [[ -n ${(k)opts[--machine-parseable]} ]]; then
|
||||
tomb_opts+='--machine-parseable'
|
||||
if [[ -n ${(k)opts[--batch]} ]]; then
|
||||
tomb_opts+='--batch'
|
||||
fi
|
||||
local -a under_opts
|
||||
if [[ -n ${(k)opts[--print-path]} ]]; then
|
||||
under_opts+='--print-path'
|
||||
if [[ -n ${(k)opts[--path]} ]]; then
|
||||
under_opts+='--path'
|
||||
fi
|
||||
local -A backupopts
|
||||
for a in ${(k)opts}; do
|
||||
|
Loading…
Reference in New Issue
Block a user