27 lines
		
	
	
	
		
			642 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			642 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { 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##*/} <date-string>"
 | |
|       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"
 | |
|   '';
 | |
| }
 |