nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

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 }