Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- IN_FILE="$(realpath ./woof-CE-out-replace.lst)"
- out_type=file
- case "$out_type" in
- directory)
- OUT_FILE=arch32_tarball4woof_ce-20200314
- mkdir -p "$OUT_FILE"
- ;;
- *)
- OUT_FILE=arch32_tarball4woof_ce-20200314.tar.gz
- ;;
- esac
- CWD=$(realpath .)
- delete_old=yes
- OUT_FILE_PATH="$(realpath $OUT_FILE || echo "$OUT_FILE")"
- if [ "$delete_old" = yes ]; then
- [ -f "$OUT_FILE_PATH" ] && rm "$OUT_FILE_PATH"
- else
- [ -f "$OUT_FILE_PATH" ] && mv "$OUT_FILE_PATH" "$OUT_FILE_PATH_back$$"
- fi
- case "$OUT_FILE_PATH" in
- *.gz)
- PRE_OUT_FILE_PATH="${OUT_FILE_PATH%.gz}"
- ;;
- esac
- if [ ! -z "PRE_OUT_FILE_PATH" ]; then
- if [ "$delete_old" = yes ]; then
- [ -f "$PRE_OUT_FILE_PATH" ] && rm "$PRE_OUT_FILE_PATH"
- else
- [ -f "$PRE_OUT_FILE_PATH" ] && mv "$PRE_OUT_FILE_PATH" "$PRE_OUT_FILE_PATH_back$$"
- fi
- fi
- function process_output(){
- local exit_fn2=$1
- #if [ "$exit_fn2" = no ]; then
- while read -r a_file a_root rest; do
- #read -r a_file a_root rest
- cd "$CWD"
- a_file="$(echo "$a_file" | sed -e 's%\(^['"'"']\|^["]\)%%' -e 's%\(['"'"']\|["]\)%%')"
- [ -z "$a_root" ] && a_root=$CWD
- a_root="$(echo "$a_root" | sed -e 's%\(^['"'"']\|^["]\)%%' -e 's%\(['"'"']\|["]\)%%')"
- [ -z "$a_root" ] && a_root=$CWD
- #a_root="${aroot%/}/"
- #[ "$a_file" = EOF ] && break
- #[ -z "$a_file" ] && break
- a_file2="${a_file%/*}"
- a_file2="${a_file2%/}"
- [ ! -e "$a_file2" ] && cd "$CWD" && continue
- if [ -e "$a_root/$a_file2" ] && [ ! -z "$a_file2" ]; then
- cd $a_root
- if [ -d "$OUT_FILE_PATH" ]; then
- cd $a_root
- find . -wholename "./$a_file2" | cpio -pdu "$OUT_FILE_PATH"
- else
- #a_file="${a_file%/*}"
- #a_file="${a_file%/}"
- a_root="${a_root%/}"
- case "OUT_FILE_PATH" in
- *)
- if [ -f "$PRE_OUT_FILE_PATH" ]; then
- tar -r -f "$PRE_OUT_FILE_PATH" $a_file2
- else
- tar -cf "$PRE_OUT_FILE_PATH" $a_file2
- fi
- #find . -name "$a_file" | tar -czvf "$OUT_FILE_PATH"
- ;;
- esac
- fi
- fi
- done
- #fi
- #exit 0
- }
- while read -r line; do
- echo "$line '' '' ''"
- done <$IN_FILE | process_output "$exit_fn"
- case "$OUT_FILE_PATH" in
- *.gz)
- #set +x
- gzip -c "$PRE_OUT_FILE_PATH" > "$OUT_FILE_PATH" && rm "$PRE_OUT_FILE_PATH"
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement