mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
synced 2024-12-25 08:22:54 +00:00
af70c9d537
Signed-off-by: psykose <alice@ayaya.dev>
54 lines
1.1 KiB
Bash
Executable File
54 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Deduplicate files in a given destdir
|
|
#
|
|
|
|
err() {
|
|
echo "ERROR: $*"
|
|
exit 1
|
|
}
|
|
|
|
verbose=:
|
|
destdir=
|
|
while test $# -gt 0; do
|
|
case $1 in
|
|
-v | --verbose)
|
|
# shellcheck disable=SC2209
|
|
verbose=echo
|
|
shift
|
|
;;
|
|
*)
|
|
if test -n "$destdir"; then
|
|
err "unknown command-line options: $*"
|
|
fi
|
|
|
|
destdir="$1"
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if test -z "$destdir"; then
|
|
err "destination directory was not specified."
|
|
fi
|
|
|
|
if ! test -d "$destdir"; then
|
|
err "provided directory does not exit."
|
|
fi
|
|
|
|
if ! command -v rdfind >/dev/null; then
|
|
err "rdfind is not installed."
|
|
fi
|
|
|
|
$verbose "Finding duplicate files"
|
|
rdfind -makesymlinks true -makeresultsfile true "$destdir" >/dev/null
|
|
|
|
grep DUPTYPE_WITHIN_SAME_TREE results.txt | grep -o "$destdir.*" | while read -r l; do
|
|
target="$(realpath "$l")"
|
|
$verbose "Correcting path for $l"
|
|
ln --force --symbolic --relative "$target" "$l"
|
|
done
|
|
|
|
rm results.txt
|