File: minitar

package info (click to toggle)
libarchive 3.8.5-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 27,896 kB
  • sloc: ansic: 172,236; sh: 6,022; makefile: 1,951; cpp: 1,535; awk: 770
file content (62 lines) | stat: -rw-r--r-- 1,838 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh
set -e

# autopkgtest check: Build and run the example minitar program against
# libarchive, to verify that the headers and pkg-config file are installed
# correctly and minitar works as expected.
# Author: Benjamin Drung <bdrung@ubuntu.com>

if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
    CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
else
    CROSS_COMPILE=
fi

flags="$("${CROSS_COMPILE}pkg-config" --cflags --libs libarchive)"
# shellcheck disable=2086  # there may be more than one word in $flags
"${CROSS_COMPILE}gcc" -O2 -g -Wno-unused-result -o minitar examples/minitar/minitar.c $flags

# Create different tarballs
echo "Deadbeaf" > foo
echo "Compressing foo.tar..."
./minitar -cf foo.tar foo
echo "Compressing foo.tar.gz..."
./minitar -czf foo.tar.gz foo
echo "Compressing foo.tar.bz2..."
./minitar -cyf foo.tar.bz2 foo

# Test tarballs for correct mime type
echo "Testing mime type of foo.tar..."
filetype="$(file -b --mime-type foo.tar)"
test "$filetype" = "application/x-tar"
echo "Testing mime type of foo.tar.gz..."
filetype="$(file -b --mime-type foo.tar.gz)"
test "$filetype" = "application/gzip"
echo "Testing mime type of foo.tar.bz2..."
filetype="$(file -b --mime-type foo.tar.bz2)"
test "$filetype" = "application/x-bzip2"

# Test untar, too, for extracting.
# shellcheck disable=2086  # there may be more than one word in $flags
"${CROSS_COMPILE}gcc" -O2 -g -Wno-unused-result -o untar examples/untar.c $flags

# Extract tarballs and compare content
mv foo foo.orig
echo "Extracting foo.tar..."
./minitar -xf foo.tar
cmp foo foo.orig
rm foo
./untar -xf foo.tar
cmp foo foo.orig
rm foo foo.tar
echo "Extracting foo.tar.gz..."
./minitar -xf foo.tar.gz
cmp foo foo.orig
rm foo foo.tar.gz
echo "Extracting foo.tar.bz2..."
./minitar -xf foo.tar.bz2
cmp foo foo.orig
rm foo foo.tar.bz2

# Clean-up
rm foo.orig minitar untar