-#!/bin/sh
-
-# list a files libraries
-
-LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux-x86-64.so.2
-
-verbose=0
-all=0
-script=0
-check=0
-
-while getopts avs arg; do
- case $arg in
- a) all=1;;
- v) verbose=1;;
- c) check=1;;
- s) script=1;;
- ?) printf 'usage: zpm-preserve [-av] <pkgname>\n'
- exit 1
- ;;
- esac
-done
-
-pkgname="$1"
-
-pacman -Qlq "$pkgname" | while read file; do
- if [ ! -f "$file" ]; then continue; fi
- base=$(basename "$file")
- if [ $all -eq 0 ] && [ "$base" = "${base#lib}" ]; then continue; fi
-
- if [ $check -eq 1 ]; then
- elftype -e "$file"
- rv=$?
- if [ $rv -ne 0 ]; then continue; fi
- for lib in $(zpm getlibs $file | grep preserve); do
- echo $pkgname $file $lib
- done
- continue
- fi
-
- soname=$(soname $file)
- if [ $? -eq 0 ] && [ -n "$soname" ]; then
- dir=$(dirname "$file")
- if [ "$script" -ne 0 ]; then
- printf 'mkdir -p "%s"\n' "$dir/preserve"
- printf 'ln -f "%s" "%s"\n' "$file" "$dir/preserve/"
- else
- mkdir -p "$dir/preserve"
- if [ "$verbose" -gt 0 ]; then
- printf '# preserving %s\n' "$file"
- fi
- ln -f "$file" "$dir/preserve/"
- fi
- fi
-done