diff options
Diffstat (limited to 'repos/extra/linux-firmware/dedup-firmware.sh')
| -rw-r--r-- | repos/extra/linux-firmware/dedup-firmware.sh | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/repos/extra/linux-firmware/dedup-firmware.sh b/repos/extra/linux-firmware/dedup-firmware.sh deleted file mode 100644 index 51dad3e0..00000000 --- a/repos/extra/linux-firmware/dedup-firmware.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/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) - 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 exist." -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 - -# --relative is a GNU coreutils ln extension; not available in BusyBox. -# Compute the relative path ourselves using a portable shell function. -relpath() { - # relpath <target_abs> <link_abs> - # Prints the relative path from the directory of <link_abs> to <target_abs>. - target="$1" - link_dir=$(dirname "$2") - - # Strip common prefix component-by-component. - t="$target" - b="$link_dir" - - # Normalise: remove trailing slashes - t=${t%/} - b=${b%/} - - # Walk up from b until it is a prefix of t - up="" - while [ -n "$b" ] && [ "${t#$b/}" = "$t" ] && [ "$t" != "$b" ]; do - b=$(dirname "$b") - up="../$up" - done - - if [ "$t" = "$b" ]; then - # Same directory - rel="." - else - rel="$up${t#$b/}" - fi - - printf '%s\n' "$rel" -} - -grep DUPTYPE_WITHIN_SAME_TREE results.txt \ - | grep -o "$destdir[^ ]*" \ - | while read -r l; do - target=$(realpath "$l") - $verbose "Correcting path for $l" - rel=$(relpath "$target" "$l") - # BusyBox ln uses short flags: -s (symbolic), -f (force) - ln -sf "$rel" "$l" - done - -rm results.txt |