55 lines
2.6 KiB
Bash
Executable File
55 lines
2.6 KiB
Bash
Executable File
#!/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' '<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"></Types>' > "$FIXTURE_DIR/docx-src/[Content_Types].xml"
|
|
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title>Recovered Word Title</dc:title></cp:coreProperties>' > "$FIXTURE_DIR/docx-src/docProps/core.xml"
|
|
printf '%s' 'stub' > "$FIXTURE_DIR/docx-src/word/document.xml"
|
|
|
|
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>kMDItemTitle</key><string>Recovered Pages Title</string></dict></plist>' > "$FIXTURE_DIR/pages-src/Metadata/DocumentProperties.plist"
|
|
printf '%s' 'stub' > "$FIXTURE_DIR/pages-src/Pages/Document.iwa"
|
|
|
|
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>isMultiPage</key><false/></dict></plist>' > "$FIXTURE_DIR/iwork-src/Metadata/Properties.plist"
|
|
printf '%s' 'stub' > "$FIXTURE_DIR/iwork-src/Index/Document.iwa"
|
|
|
|
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>isMultiPage</key><false/></dict></plist>' > "$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" |