summaryrefslogtreecommitdiffstats
path: root/a
blob: 8c139ccf022fd1444be32bd58674ba902b49bf7d (plain)
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
#!/usr/bin/python
#----------------------------------------------------
# Version:      0.2.0
# Author:       Florian "Bluewind" Pritz <f-p@gmx.at>
#
# Copyright (C) 2009 Florian Pritz
#
# Licensed under GNU General Public License v3
#   (see COPYING for full license text)
#----------------------------------------------------
# got bored and a.sh has some problems with spaces
#----------------------------------------------------

import sys
import tarfile
from optparse import OptionParser

def main():
    usage = "usage: %prog [options] <files>"
    p = OptionParser(usage)
    p.add_option("-f", "--file", dest="tarname", default=False,
            help="use <file>.tar.gz instead of $1.tar.gz", metavar="<file>")
    p.add_option("-b", "--bzip2", action="store_true", dest="bz2", default=False,
            help="use bzip2 compression")
    p.add_option("-u", "--uncompressed", action="store_true", dest="uncompressed", default=False,
            help="don't use compression at all")

    (options, args) = p.parse_args()


    if len(sys.argv) == 1:
        p.print_help()
        sys.exit()

    if options.tarname:
        tarname = options.tarname
    else:
        tarname = args[0]

    if options.bz2:
        tarname += ".tar.bz2"
        tar = tarfile.open(tarname, "w|bz2")
    elif options.uncompressed:
        tarname += ".tar"
        tar = tarfile.open(tarname, "w")
    else:
        tarname += ".tar.gz"
        tar = tarfile.open(tarname, "w|gz")

    for name in args:
        try:
            tar.add(name)
        except OSError:
            sys.stderr.write("No such file or directory: '%s'\n" % name)
    tar.close()

if __name__ == '__main__':
    main()