summaryrefslogtreecommitdiff
path: root/packaging/macros.fdupes
blob: 9ec8e78742dcb68e07dcd857598fe32fe55ec3c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

%fdupes(s) \
 _target=""; \
 _symlinks=0; \
 _files=(); \
 %{-s:_symlinks=1;} \
 fdupes -q -n -r %1 | \
  while read _file; do \
   if test -z $_file; then \
    _sorted_files=($(for i in ${_files[*]}; do echo $i; done | sort)); \
    _target=${_sorted_files[0]}; \
    for i in $(seq 1 $((${#_sorted_files[@]}-1))); do \
     symlink_file=${_sorted_files[$i]}; \
     rm $symlink_file;\
     if test "$_symlinks" = 1; then \
      ln -sf "${_target#%{buildroot}}" "$symlink_file"; \
     else \
      ln -f "$_target" "$symlink_file"; \
     fi ;\
    done; \
    _files=(); \
   else \
    _files+=($_file); \
   fi; \
 done \
%{nil}