feat(guz,apps,packages): untrack, small utility to remove metadata from files
This commit is contained in:
@@ -137,6 +137,8 @@
|
||||
...
|
||||
}: {
|
||||
davincify = pkgs.callPackage ./packages/davincify {};
|
||||
untrack = pkgs.callPackage ./packages/untrack {};
|
||||
|
||||
neovim = inputs.neovim.packages.${pkgs.system}.default;
|
||||
|
||||
devkit =
|
||||
|
||||
@@ -40,11 +40,13 @@
|
||||
|
||||
# Media
|
||||
ffmpeg
|
||||
exiftool
|
||||
krita
|
||||
davinci-resolve
|
||||
])
|
||||
# Utils
|
||||
++ (with self.packages.${pkgs.system}; [
|
||||
davincify
|
||||
untrack
|
||||
]);
|
||||
}
|
||||
|
||||
9
packages/untrack/default.nix
Normal file
9
packages/untrack/default.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
pkgs.writeShellScriptBin "untrack" ''
|
||||
function exitftool() { ${lib.getExe pkgs.exiftool} "$@"; }
|
||||
${builtins.readFile ./untrack.sh}
|
||||
''
|
||||
25
packages/untrack/untrack.sh
Normal file
25
packages/untrack/untrack.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
function rand_hex() {
|
||||
local length="$1"
|
||||
|
||||
cat /dev/urandom | tr -cd 'a-f0-9' | head -c "$length"
|
||||
}
|
||||
|
||||
# TODO: Support for directories
|
||||
function untrack() {
|
||||
local file="$1"
|
||||
|
||||
local filename="$(basename "$file")"
|
||||
local ext="${filename##*.}"
|
||||
local directory="$(dirname "$file")"
|
||||
|
||||
local output_file="$directory/$(rand_hex 6).$ext"
|
||||
|
||||
cp "$file" "$output_file"
|
||||
|
||||
exiftool \
|
||||
-overwrite_original \
|
||||
-all= \
|
||||
"$output_file"
|
||||
}
|
||||
|
||||
untrack "$1"
|
||||
Reference in New Issue
Block a user