update_0.3

This commit is contained in:
root
2026-02-04 04:05:30 +04:00
parent 77977c9756
commit 53a287a444
4 changed files with 234 additions and 178 deletions
+38 -17
View File
@@ -1,33 +1,54 @@
#!/bin/sh
OUT_FILE="$1"
LIST_FILE="$2"
OPKG_SCR="$3"
CONFIGS="$4"
LOCAL_FILE="$1"
LOCAL_LST="$2"
SCR_OPKG="$3"
C_LIST="$4"
H_REPLACE="$5"
C_EXCLUDE="$6"
[ -z "$OUT_FILE" ] || [ -z "$LIST_FILE" ] || [ -z "$OPKG_SCR" ] || [ -z "$CONFIGS" ] || [ -z "H_REPLACE" ] && echo "Missing params!" && exit 1
[ -z "$LOCAL_FILE" ] || [ -z "$LOCAL_LST" ] || [ -z "$C_LIST" ] && 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"
$SCR_OPKG write "$LOCAL_LST" "$H_REPLACE"
echo "Collecting files..."
for p in $CONFIGS; do
echo "Included:"
for p in $C_LIST; do
[ -z "$p" ] && continue
if [ -e "$p" ]; then
mkdir -p "$TMP_DIR$(dirname "$p")"
cp -a "$p" "$TMP_DIR$p"
cp -aP "$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" .
echo "Excluded:"
if [ -n "$C_EXCLUDE" ]; then
for item in $C_EXCLUDE; do
[ -z "$item" ] && continue
TARGET_REMOVE=$(echo "$TMP_DIR/$item" | sed 's|//*|/|g')
if [ -e "$TARGET_REMOVE" ]; then
rm -rf "$TARGET_REMOVE"
echo " [-] $item"
else
echo " [!] Not found in backup: $item"
fi
done
fi
printf "Creating backup... "
TAR_ERR=$(tar -cz -f "$LOCAL_FILE" -C "$TMP_DIR" . 2>&1)
if [ $? -eq 0 ] && [ -f "$LOCAL_FILE" ]; then
echo "OK"
echo " [+] Archive size: $(du -sh "$LOCAL_FILE" | awk '{print $1}')"
else
echo "FAILED"
[ -n "$TAR_ERR" ] && echo "[!] Tar error: $TAR_ERR"
rm -rf "$TMP_DIR"
exit 1
fi
rm -rf "$TMP_DIR"
echo "Total $COUNT config paths saved to $OUT_FILE."