mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
pkg.sh log-install: Fix handling of links
- Links are installed with file attributes - Sometimes links are wrongly logged as directories Fix that. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
39ffefb285
commit
ce08110e2b
1 changed files with 30 additions and 29 deletions
|
|
@ -808,38 +808,16 @@ cmd_log_install()
|
|||
exit 0
|
||||
}
|
||||
|
||||
local file mode installd_file cfgfile dir
|
||||
local file mode installd_file cfgfile dir attr
|
||||
if [ "$c_mode_dir" = true ]; then
|
||||
for file in $*; do
|
||||
[ "$c_no_log_dirs" = 0 ] || continue
|
||||
echo "%dir %attr($c_mode,$c_owner,$c_group) $file" >> $c_logfile
|
||||
attr=" %attr($c_mode,$c_owner,$c_group)"
|
||||
[ -L "$file" ] && attr=""
|
||||
echo "%dir$attr $file" >> $c_logfile
|
||||
done
|
||||
else
|
||||
if [ -d "$c_target" ]; then
|
||||
for file in $c_source; do
|
||||
installed_file="$c_target/`basename $file`"
|
||||
cfgfile=""
|
||||
local mode
|
||||
if [ "$c_mode" ]; then
|
||||
mode=$c_mode
|
||||
cfgfile=`cfgfile_macro "$installed_file"`
|
||||
else
|
||||
if [ -d "$file" ]; then
|
||||
[ "$c_no_log_dirs" = 0 ] || continue
|
||||
dir="%dir "
|
||||
mode=0755
|
||||
else
|
||||
cfgfile=`cfgfile_macro "$installed_file"`
|
||||
dir=""
|
||||
mode=0644
|
||||
fi
|
||||
fi
|
||||
local attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -l $file ] && attr=""
|
||||
echo "$dir$attr $cfgfile$installed_file" |
|
||||
sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
done
|
||||
else
|
||||
if [ -f "$c_target" -o -L "$c_target" ]; then
|
||||
installed_file="$c_target"
|
||||
cfgfile=""
|
||||
if [ "$c_mode" ]; then
|
||||
|
|
@ -855,11 +833,34 @@ cmd_log_install()
|
|||
mode=0644
|
||||
fi
|
||||
fi
|
||||
local attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -l $file ] && attr=""
|
||||
attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -L "$c_target" ] && attr=""
|
||||
if [ -z "$dir" -o "$c_no_log_dirs" != 0 ]; then
|
||||
echo "$dir$attr $cfgfile$c_target" | sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
fi
|
||||
elif [ -d "$c_target" ]; then
|
||||
for file in $c_source; do
|
||||
installed_file="$c_target/`basename $file`"
|
||||
cfgfile=""
|
||||
if [ "$c_mode" ]; then
|
||||
mode=$c_mode
|
||||
cfgfile=`cfgfile_macro "$installed_file"`
|
||||
else
|
||||
if [ -d "$file" ]; then
|
||||
[ "$c_no_log_dirs" = 0 ] || continue
|
||||
dir="%dir "
|
||||
mode=0755
|
||||
else
|
||||
cfgfile=`cfgfile_macro "$installed_file"`
|
||||
dir=""
|
||||
mode=0644
|
||||
fi
|
||||
fi
|
||||
attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -L "$file" ] && attr=""
|
||||
echo "$dir$attr $cfgfile$installed_file" |
|
||||
sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue