Use zsh for bin/since
Why depend on bc for this, when we know zsh will always be available on my nix systems.
This commit is contained in:
		
							parent
							
								
									e169416ae4
								
							
						
					
					
						commit
						20b8c2c1ad
					
				
							
								
								
									
										35
									
								
								bin/since
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								bin/since
									
									
									
									
									
								
							|  | @ -1,5 +1,4 @@ | ||||||
| #!/usr/bin/env cached-nix-shell | #!/usr/bin/env zsh | ||||||
| #! nix-shell -i bash -p bc |  | ||||||
| set -e | set -e | ||||||
| (( $# > 0 )) || exit | (( $# > 0 )) || exit | ||||||
| 
 | 
 | ||||||
|  | @ -25,23 +24,15 @@ fi | ||||||
| 
 | 
 | ||||||
| # Bash doesn't support floating point arithmetic like zsh does, so use bc to do | # Bash doesn't support floating point arithmetic like zsh does, so use bc to do | ||||||
| # our arithmetic. | # our arithmetic. | ||||||
| bc <<EOF | zmodload zsh/mathfunc | ||||||
|   define abs(i) { | t=$(( abs(t) )) | ||||||
|     if (i < 0) return (-i) | weeks=$(( t / 60 / 60 / 24 / 7 )) | ||||||
|     return (i) | days=$(( t / 60 / 60 / 24 % 7 )) | ||||||
|   } | hours=$(( t / 60 / 60 % 24 )) | ||||||
| 
 | minutes=$(( t / 60 % 60 )) | ||||||
|   t = abs($t) | seconds=$(( t % 60 )) | ||||||
| 
 | (( weeks > 0 )) && echo -n "${weeks}w " | ||||||
|   weeks = t / 60 / 60 / 24 / 7 | (( days > 0 )) && echo -n "${days}d " | ||||||
|   days = t / 60 / 60 / 24 % 7 | (( hours > 0 )) && echo -n "${hours}h " | ||||||
|   hours = t / 60 / 60 % 24 | (( minutes > 0 )) && echo -n "${minutes}m " | ||||||
|   minutes = t / 60 % 60 | echo -n "${seconds}s" | ||||||
|   seconds = t % 60 |  | ||||||
| 
 |  | ||||||
|   if (weeks > 0) print weeks, "w " |  | ||||||
|   if (days > 0) print days, "d " |  | ||||||
|   if (hours > 0) print hours, "h " |  | ||||||
|   if (minutes > 0) print minutes, "m " |  | ||||||
|   print seconds, "s" |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue