#!/bin/zsh
emulate -L zsh
setopt no_unset pipefail
typeset -gr TEST_ROOT=${0:A:h:h}
typeset -gr FIXTURE_DIR="$TEST_ROOT/tmp-fixture"
cleanup() {
rm -rf -- "$FIXTURE_DIR"
}
trap cleanup EXIT INT TERM
mkdir -p "$FIXTURE_DIR/docx-src/word" \
"$FIXTURE_DIR/docx-src/docProps" \
"$FIXTURE_DIR/iwork-src/Index" \
"$FIXTURE_DIR/iwork-src/Metadata" \
"$FIXTURE_DIR/numbers-src/Index/Tables" \
"$FIXTURE_DIR/numbers-src/Metadata" \
"$FIXTURE_DIR/pages-src/Metadata" \
"$FIXTURE_DIR/pages-src/Pages" \
"$FIXTURE_DIR/unknown-src" \
"$FIXTURE_DIR/tar-src"
printf '%s' '' > "$FIXTURE_DIR/docx-src/[Content_Types].xml"
printf '%s' 'Recovered Word Title' > "$FIXTURE_DIR/docx-src/docProps/core.xml"
printf '%s' 'stub' > "$FIXTURE_DIR/docx-src/word/document.xml"
printf '%s' 'kMDItemTitleRecovered Pages Title' > "$FIXTURE_DIR/pages-src/Metadata/DocumentProperties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/pages-src/Pages/Document.iwa"
printf '%s' 'isMultiPage' > "$FIXTURE_DIR/iwork-src/Metadata/Properties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/iwork-src/Index/Document.iwa"
printf '%s' 'isMultiPage' > "$FIXTURE_DIR/numbers-src/Metadata/Properties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/numbers-src/Index/Document.iwa"
printf '%s' 'stub' > "$FIXTURE_DIR/numbers-src/Index/Tables/DataList.iwa"
printf '%s' 'mystery' > "$FIXTURE_DIR/unknown-src/file.bin"
printf '%s' 'hello tar' > "$FIXTURE_DIR/tar-src/readme.txt"
printf '%s' '%PDF-1.4
%%EOF
' > "$FIXTURE_DIR/sample.pdf"
(cd "$FIXTURE_DIR/docx-src" && zip -qr ../lost-doc.zip .)
(cd "$FIXTURE_DIR/iwork-src" && zip -qr ../lost-iwork.zip .)
(cd "$FIXTURE_DIR/numbers-src" && zip -qr ../lost-numbers.zip .)
(cd "$FIXTURE_DIR/pages-src" && zip -qr ../lost-pages.zip .)
(cd "$FIXTURE_DIR/unknown-src" && zip -qr ../mystery.zip .)
tar -czf "$FIXTURE_DIR/archive.gz" -C "$FIXTURE_DIR/tar-src" .
gzip -c "$FIXTURE_DIR/sample.pdf" > "$FIXTURE_DIR/sample.gz"
cd "$TEST_ROOT"
./classify-recovered-archives.zsh --dry-run --verbose "$FIXTURE_DIR"