ctimerename.nix (733B)
1 {pkgs, ...}: let 2 ctimerename = pkgs.writeShellScriptBin "ctimerename" '' 3 extension="$1" 4 if [ -z "$extension" ]; then 5 echo "Extension variable is empty. Please specify a extension, e.g. jpg" 6 exit 1 7 fi 8 for file in *."$extension"; do 9 if [ -f "$file" ]; then 10 timestamp=$(stat -c %y "$file" | cut -d'.' -f1 | sed 's/[: ]/-/g') 11 newname="''${timestamp}.$extension" 12 13 # If the filename exists, add a counter 14 count=1 15 while [ -e "$newname" ]; do 16 newname="''${timestamp}_$count.$extension" 17 ((count++)) 18 done 19 20 echo "Renaming '$file' to '$newname'" 21 mv "$file" "$newname" 22 fi 23 done 24 ''; 25 in { 26 environment.systemPackages = [ctimerename]; 27 }