#!/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"