diff options
Diffstat (limited to 'pkgs/disable-sleep/default.nix')
-rw-r--r-- | pkgs/disable-sleep/default.nix | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/disable-sleep/default.nix b/pkgs/disable-sleep/default.nix new file mode 100644 index 0000000..07c3bb8 --- /dev/null +++ b/pkgs/disable-sleep/default.nix @@ -0,0 +1,30 @@ +{ + writeShellApplication, + human-sleep, +}: +writeShellApplication { + name = "disable-sleep"; + + runtimeInputs = [human-sleep]; + + text = '' + set -ue + + if [ "$(id -u)" -ne 0 ]; then + echo "Acquiring root access..." + exec sudo "$0" "$@" + fi + + cleanup() { + echo "Re-enabling sleep..." + pmset -a disablesleep 0 + } + + echo "Disabling sleep..." + pmset -a disablesleep 1 + trap cleanup EXIT + + echo "Waiting..." + human-sleep "$@" + ''; +} |