From f4136fd5a9ad6b1a81e456417632bcefee72f972 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 30 Mar 2025 12:18:16 +0200 Subject: [PATCH] cs/draft --- sh/cryptsetup.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/sh/cryptsetup.sh b/sh/cryptsetup.sh index 900083d..c258005 100644 --- a/sh/cryptsetup.sh +++ b/sh/cryptsetup.sh @@ -1,6 +1,52 @@ -_rwx_cmd_cs() { rwx_crypt_setup "${@}"; } +_rwx_cmd_cs() { rwx_crypt "${@}"; } -rwx_crypt_setup() { +RWX_CRYPT_ROOT="${HOME}/home/crypt" + +rwx_crypt() { local action="${1}" - echo "cs: ${action}" + 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_close}") + rwx_log_info "CLOSE" + # TODO unmount file system + # TODO close device + # TODO disconnect device + ;; + "${action_open}") + rwx_log_info "OPEN" + # TODO find next available device + # TODO connect device + # TODO open device + # TODO mount file system + ;; + *) ;; + esac + else + rwx_log_error 2 "Not a file" + fi + done + ;; + *) + rwx_log_info "Usage:" + rwx_log_info "${action_close}|${action_open}" + ;; + esac }