#!/usr/bin/env bash # # Test gzip compression workflow: # 1. Create archive from first state file # 2. Compress with gzip # 3. Append remaining state files to the compressed archive # 4. Decompress and show info # set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" BINARY="$PROJECT_DIR/target/debug/json-archive" DATA_DIR="$SCRIPT_DIR/data" OUT_DIR="$SCRIPT_DIR/out/gzip" echo "=== Gzip Compression Test ===" # Setup rm -rf "$OUT_DIR" mkdir -p "$OUT_DIR" # Create initial archive from first state file echo "Creating archive from state_1.json..." "$BINARY" "$DATA_DIR/state_1.json" -o "$OUT_DIR/test.json.archive" # Compress with gzip echo "Compressing with gzip..." gzip "$OUT_DIR/test.json.archive" ls -la "$OUT_DIR/" # Append remaining files to compressed archive for i in $(seq 2 9); do echo "Appending state_$i.json to compressed archive..." "$BINARY" "$OUT_DIR/test.json.archive.gz" "$DATA_DIR/state_$i.json" done # Show info on the result echo "" echo "Final archive info:" "$BINARY" info "$OUT_DIR/test.json.archive.gz" # Decompress for manual inspection echo "" echo "Decompressing for comparison..." gunzip -k "$OUT_DIR/test.json.archive.gz" 2>/dev/null || gunzip -c "$OUT_DIR/test.json.archive.gz" > "$OUT_DIR/test.json.archive" echo "" echo "Decompressed archive info:" "$BINARY" info "$OUT_DIR/test.json.archive" echo "" echo "Files in $OUT_DIR:" ls -la "$OUT_DIR/"