2025-03-30 12:18:16 +02:00
|
|
|
_rwx_cmd_cs() { rwx_crypt "${@}"; }
|
2025-02-10 21:54:51 +01:00
|
|
|
|
2025-03-30 12:18:16 +02:00
|
|
|
RWX_CRYPT_ROOT="${HOME}/home/crypt"
|
|
|
|
|
|
|
|
rwx_crypt() {
|
2025-02-10 21:54:51 +01:00
|
|
|
local action="${1}"
|
2025-03-30 12:18:16 +02:00
|
|
|
local action_close="close"
|
|
|
|
local action_open="open"
|
|
|
|
local mapper="/dev/mapper"
|
|
|
|
local mount_root="/media"
|
|
|
|
local crypt_arg crypt_file crypt_map crypt_mount pass_phrase
|
|
|
|
case "${action}" in
|
|
|
|
"${action_close}" | "${action_open}")
|
|
|
|
shift
|
|
|
|
if [ -z "${1}" ]; then
|
|
|
|
rwx_log_error 1 "No files"
|
|
|
|
fi
|
|
|
|
[ "${action}" = "${action_open}" ] &&
|
|
|
|
pass_phrase="$(rwx_read_passphrase)"
|
|
|
|
for crypt_arg in "${@}"; do
|
|
|
|
rwx_log_info
|
|
|
|
crypt_file="${RWX_CRYPT_ROOT}/${crypt_arg}"
|
|
|
|
if [ -f "${crypt_file}" ]; then
|
|
|
|
crypt_map="${mapper}/${crypt_arg}"
|
|
|
|
crypt_mount="${mount_root}/${crypt_arg}"
|
|
|
|
case "${action}" in
|
|
|
|
"${action_open}")
|
|
|
|
rwx_log_info "OPEN"
|
|
|
|
# TODO find next available device
|
|
|
|
# TODO connect device
|
|
|
|
# TODO open device
|
2025-03-30 12:43:20 +02:00
|
|
|
# TODO make mount directory
|
2025-03-30 12:18:16 +02:00
|
|
|
# TODO mount file system
|
|
|
|
;;
|
2025-03-30 12:41:48 +02:00
|
|
|
"${action_close}")
|
|
|
|
rwx_log_info "CLOSE"
|
|
|
|
# TODO unmount file system
|
2025-03-30 12:43:20 +02:00
|
|
|
# TODO remove mount directory
|
2025-03-30 12:41:48 +02:00
|
|
|
# TODO close device
|
|
|
|
# TODO disconnect device
|
|
|
|
;;
|
2025-03-30 12:18:16 +02:00
|
|
|
*) ;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
rwx_log_error 2 "Not a file"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
rwx_log_info "Usage:"
|
|
|
|
rwx_log_info "${action_close}|${action_open}"
|
2025-03-30 12:41:48 +02:00
|
|
|
# TODO list
|
2025-03-30 12:18:16 +02:00
|
|
|
;;
|
|
|
|
esac
|
2025-02-10 21:54:51 +01:00
|
|
|
}
|