#!/usr/bin/env cached-nix-shell #! nix-shell -i bash -p bc set -e (( $# > 0 )) || exit # Displays the time since $1 in a human readable format (e.g. 4h 25m 55s). If # given a file, the modified time is used. If $1 == "--", then this script acts # as a converter, converting $2 into human a readable format, e.g. since -- 72 # #=> 1m 12s # TODO: A help fallback # TODO: Options parsing? # If given a file, give time since last modification (( $# == 1 )) && [[ -f $1 ]] && arg=reference || arg=date if [[ $1 == -- ]]; then t="$2" else now=$(date +%s) then=$(date --$arg="$*" +%s) t=$(( now - then )) fi # Bash doesn't support floating point arithmetic like zsh does, so use bc to do # our arithmetic. bc < 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