34 lines
772 B
Bash
Executable File
34 lines
772 B
Bash
Executable File
#!/bin/sh
|
|
|
|
OUT_FILE="$1"
|
|
LIST_FILE="$2"
|
|
OPKG_SCR="$3"
|
|
CONFIGS="$4"
|
|
H_REPLACE="$5"
|
|
|
|
[ -z "$OUT_FILE" ] || [ -z "$LIST_FILE" ] || [ -z "$OPKG_SCR" ] || [ -z "$CONFIGS" ] || [ -z "H_REPLACE" ] && echo "Missing params!" && exit 1
|
|
|
|
TMP_DIR="/tmp/backup_stack"
|
|
rm -rf "$TMP_DIR" && mkdir -p "$TMP_DIR"
|
|
COUNT=0
|
|
|
|
echo "Writing package list..."
|
|
$OPKG_SCR write "$LIST_FILE" "$H_REPLACE"
|
|
|
|
echo "Collecting files..."
|
|
for p in $CONFIGS; do
|
|
if [ -e "$p" ]; then
|
|
mkdir -p "$TMP_DIR$(dirname "$p")"
|
|
cp -a "$p" "$TMP_DIR$p"
|
|
echo " [+] $p"
|
|
COUNT=$((COUNT + 1))
|
|
else
|
|
echo " [-] $p (not found)"
|
|
fi
|
|
done
|
|
|
|
echo "Creating archive..."
|
|
tar -czf "$OUT_FILE" -C "$TMP_DIR" .
|
|
rm -rf "$TMP_DIR"
|
|
echo "Total $COUNT config paths saved to $OUT_FILE."
|