_rwx_cmd_cs() { rwx_crypt "${@}"; } RWX_CRYPT_ROOT="${HOME}/home/crypt" rwx_crypt() { local action="${1}" 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 # TODO make mount directory # TODO mount file system ;; "${action_close}") rwx_log_info "CLOSE" # TODO unmount file system # TODO remove mount directory # TODO close device # TODO disconnect device ;; *) ;; esac else rwx_log_error 2 "Not a file" fi done ;; *) rwx_log_info "Usage:" rwx_log_info "${action_close}|${action_open}" # TODO list ;; esac }