diff options
Diffstat (limited to 'local')
| -rwxr-xr-x | local/bin/usbkey | 94 | 
1 files changed, 56 insertions, 38 deletions
diff --git a/local/bin/usbkey b/local/bin/usbkey index 5e7648a..658fd98 100755 --- a/local/bin/usbkey +++ b/local/bin/usbkey @@ -56,30 +56,36 @@ check_mount() {  op_sync() {  	local DOUNMOUNT=false -	local EXITC=0 +	if [ -e "/dev/disk/by-uuid/$UUID_WKEY" ]; then +		echo "USB backup key seems to not be inserted. Please do so." >&2 +		exit 1 +	fi  	if ! check_mount; then  		DOUNMOUNT=true  		op_mount  	fi -	if [ -e "/dev/disk/by-uuid/$UUID_WKEY" ]; then -		# Mount backup usb -		sudo -- cryptsetup open "/dev/disk/by-uuid/$UUID_WKEY" "$CRYPT_NAME-backup" -		sudo -- mkdir -p "$MOUNT_PATH-backup" -		sudo -- mount -o uid="$(id -u)",gid="$(id -g)" "/dev/mapper/$CRYPT_NAME-backup" "$MOUNT_PATH-backup" -		# Sync them -		rsync -aAxXS --delete --progress "$MOUNT_PATH/" "$MOUNT_PATH-backup/" -		# Unmount it -		sudo -- umount "$MOUNT_PATH-backup" -		sudo -- rmdir "$MOUNT_PATH-backup" -		sudo -- cryptsetup close "$CRYPT_NAME-backup" -	else -		echo "USB backup key seems to not be inserted. Please do so." >&2 -		EXITC=1 -	fi + +	# Mount backup usb +	sudo -- cryptsetup open "/dev/disk/by-uuid/$UUID_WKEY" "$CRYPT_NAME-backup" +	sudo -- mkdir -p "$MOUNT_PATH-backup" +	sudo -- mount -o uid="$(id -u)",gid="$(id -g)" "/dev/mapper/$CRYPT_NAME-backup" "$MOUNT_PATH-backup" +	# Sync them +	rsync -ax --delete --progress "$MOUNT_PATH/" "$MOUNT_PATH-backup/" +	# Unmount it +	sudo -- umount "$MOUNT_PATH-backup" +	sudo -- rmdir "$MOUNT_PATH-backup" +	sudo -- cryptsetup close "$CRYPT_NAME-backup" +  	if $DOUNMOUNT; then  		op_unmount  	fi -	exit $EXITC + +	echo "Sync process finished." >&2 +} + +op_gpg_import() { +	# TODO +	true  }  ssh_list() { @@ -91,8 +97,16 @@ ssh_list() {  	done  } -ssh_generate() { +check_ssh_nane() { +	if [ -z "$NAME" ]; then +		echo "You have to specify key name!" >&2 +		exit 1 +	fi +} + +op_ssh_generate() {  	check_mount || op_mount +	check_ssh_nane  	if [ -f "$MOUNT_PATH/ssh/$NAME" ]; then  		echo "Key $NAME seems to already exists." >&2  		exit 1 @@ -100,16 +114,36 @@ ssh_generate() {  	echo -n "Please enter comment: "  	read COMMENT  	ssh-keygen -f "$MOUNT_PATH/ssh/$NAME" -C "$COMMENT" + +	echo "SSH key $NAME was generated." >&2  } -ssh_import() { +op_ssh_import() {  	check_mount || op_mount +	check_ssh_nane  	if [ -f "$MOUNT_PATH/ssh/$NAME" ] && [ -f "$MOUNT_PATH/ssh/$NAME.pub" ]; then  		echo "There is no key named $NAME" >&2  		exit 1  	fi  	cp "$MOUNT_PATH/ssh/$NAME" ~/.ssh/  	cp "$MOUNT_PATH/ssh/$NAME.pub" ~/.ssh/ + +	echo "SSH key $NAME copied to local .ssh directory." >&2 +} + +op_openvpn_list() { +	check_mount || op_mount +	# TODO +} + +op_openvpn_get() { +	check_mount || op_mount +	# TODO +} + +op_openvpn_generate() { +	check_mount || op_mount +	# TODO  } @@ -131,6 +165,7 @@ case "$1" in  		echo "  ssh-import: Import ssh key"  		echo "  ssh-generate: Generate new ssh key"  		echo "  ssh-list: List all keys in store" +		echo "  openvpn-list: List all keys"  		echo "  openvpn-get: Get keys for some host"  		echo "  openvpn-generate: Generate key for new host"  		exit 0 @@ -169,22 +204,5 @@ while [ $# -gt 0 ]; do  	esac  	shift  done - -case "$OPERATION" in -	mount) -		op_mount -		;; -	unmount) -		op_unmount -		;; -	sync) -		op_sync -		;; -	ssh-list) -		ssh_list -		;; -	*) -		echo "Operation $OPERATION not implemented" >&2 -		exit 2 -		;; -esac +# Go to operation handler +eval "op_$(echo "$OPERATION" | tr '-' '_')"  | 
