nix-configs

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

duupmove.nix (873B)


      1 {pkgs, ...}: let
      2   duupmove = pkgs.writeShellScriptBin "duupmove" ''
      3 
      4     target_dir="$1"
      5 
      6       if [ -z "$target_dir" ]; then
      7         echo "Target directory variable is empty. Please specify a directory, e.g. /mnt/destination/"
      8         exit 1
      9       fi
     10 
     11     mkdir -p "$target_dir"
     12 
     13     # Pictures
     14     for file in *.jpg; do
     15         if [[ "$file" =~ ^[0-9]+_[0-9a-f]{32}\.jpg$ ]]; then
     16             mv "$file" "$target_dir/" -vin
     17         fi
     18         if [[ "$file" =~ ^[0-9]{9}_[A-Za-z0-9]{10}\.jpg$ ]]; then
     19             mv "$file" "$target_dir/" -vin
     20         fi
     21     done
     22 
     23     # Videos
     24     for file in *.mp4; do
     25         if [[ "$file" =~ ^[0-9a-f]{8}-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.mp4$ ]]; then
     26             mv "$file" "$target_dir/" -vin
     27         fi
     28     done
     29 
     30     jdupes "$target_dir" "." -d
     31   '';
     32 in {
     33   environment.systemPackages = [duupmove];
     34 }