diff --git a/gocrypt.bash b/gocrypt.bash index c6f8608..2d70939 100755 --- a/gocrypt.bash +++ b/gocrypt.bash @@ -54,12 +54,18 @@ gocrypt_spawn_close_task() { # Cancel any previous task that might be present systemctl --user stop "$task_name.timer" > /dev/null 2>&1 + # Allow overriding close timeout from env variable + local timeout=$gocrypt_close_timeout + if [ ! -z "$PASS_GOCRYPT_CLOSE_TIMEOUT" ]; then + timeout="$PASS_GOCRYPT_CLOSE_TIMEOUT" + fi + # Create a new task - systemd-run --user --on-active=$gocrypt_close_timeout --unit="$task_name" \ + systemd-run --user --on-active=$timeout --unit="$task_name" \ /usr/bin/env flock -x "$(gocrypt_lock_file_path)" /usr/bin/env bash -c \ "fusermount -u '$PREFIX'/'$gocrypt_dec_dir' || fusermount -u -z '$PREFIX'/'$gocrypt_dec_dir'" - echo "Will close the gocryptfs mount after $gocrypt_close_timeout seconds" + echo "Will close the gocryptfs mount after $timeout seconds" } _cmd_git() { @@ -156,7 +162,7 @@ gocrypt_close() { [ $# -eq 0 ] || gocrypt_die "Unexpected argument" gocrypt_open_check # Remove the systemd task for closing if present - which systemctl > /dev/null && systemctl --user stop "$(gocrypt_unique_task_identifier).timer" > /dev/null 2>1 + which systemctl > /dev/null && systemctl --user stop "$(gocrypt_unique_task_identifier).timer" > /dev/null 2>&1 fusermount -u "$gocrypt_dec_dir" || fusermount -u -z "$gocrypt_dec_dir" }