34 lines
772 B
Bash
34 lines
772 B
Bash
#!/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."
|