diff --git a/home-manager/opdavies/PW05CH3L.nix b/home-manager/opdavies/PW05CH3L.nix index 55e0f55b..9d511468 100644 --- a/home-manager/opdavies/PW05CH3L.nix +++ b/home-manager/opdavies/PW05CH3L.nix @@ -40,6 +40,7 @@ home.packages = with pkgs; [ create-script tag-release + time-until todos-add update-all-git-repos ]; diff --git a/home-manager/opdavies/t480.nix b/home-manager/opdavies/t480.nix index 6c541251..b1a96869 100644 --- a/home-manager/opdavies/t480.nix +++ b/home-manager/opdavies/t480.nix @@ -106,6 +106,7 @@ move-firefox-screenshots setbg tag-release + time-until timer todos-add unmounter diff --git a/packages/default.nix b/packages/default.nix index 42aa2aca..c9ee6d47 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -18,6 +18,7 @@ in passmenu-otp = callPackage ./passmenu-otp.nix { }; setbg = callPackage ./setbg.nix { }; tag-release = callPackage ./tag-release.nix { }; + time-until = callPackage ./time-until.nix { }; timer = callPackage ./timer.nix { }; tmux-sessionizer = callPackage ./tmux-sessionizer { }; todos-add = callPackage ./todos-add.nix { }; diff --git a/packages/time-until.nix b/packages/time-until.nix new file mode 100644 index 00000000..82e1c821 --- /dev/null +++ b/packages/time-until.nix @@ -0,0 +1,27 @@ +{ pkgs }: + +pkgs.writeShellApplication { + name = "time-until"; + + runtimeInputs = with pkgs; [ bc ]; + + text = '' + # Based on https://github.com/sdaschner/dotfiles/blob/master/bin/time-until. + set +o nounset + + if [[ "$1" == "" ]]; then + echo "Usage: ''${0##*/} " + echo " Example: ''${0##*/} 'tomorrow 06:00'" + exit 2 + fi + + set -o nounset + + secsUntil=$(( $(date +%s -d "$*") - $( date +%s ) )) + minutesUntil=$(bc <<< "scale=1; $secsUntil/60") + hoursUntil=$(bc <<< "scale=2; $secsUntil/3600") + date=$(date -d "$*") + + echo "$hoursUntil hours (or $minutesUntil mins) until $date" + ''; +}