/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/win32/ostools.py

  • Committer: Vincent Ladeuil
  • Date: 2007-06-24 15:16:40 UTC
  • mto: (2547.2.1 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 2550.
  • Revision ID: v.ladeuil+lp@free.fr-20070624151640-5tg62jb5g9tqvybd
Fix 121889 by working around urllib2 bug.

* tests/HTTPTestUtil.py:
(DigestAuthRequestHandler.send_header_auth_reqed): python-2.4.1
fail to decode the header without the quotes. The RFC do not
require them, python >= 2.4.4 handles them gracefully. Not a big
deal.

* tests/test_http.py:
(TestAuth.setUp): Add a comment in hope I will not running around
shouting: "Who takes my traces ? Gimme my traces !" when running
the only tests who capture their own traces without showing them.

* transport/http/_urllib2_wrappers.py (BasicAuthHandler,
DigestAuthHandler): Not directly related to the bug, bug good to
fix anyway, the digest auth should be preferred to the basic
one. To do so, the digest handler should be tried before the basic
one.

* builtins.py:
(cmd_selftest.run): Fix typo. Note to reviewers: No, it's not
related to the bug. No there are no tests for that. No I don't
intend to write some :) But I'll understand if you veto that
because you want to take care of it :D

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
 
 
3
"""Cross-platform os tools: files/directories manipulations
 
4
Usage:
 
5
 
 
6
    ostools.py help
 
7
                    prints this help
 
8
 
 
9
    ostools.py copytodir FILES... DIR
 
10
                    copy files to specified directory
 
11
 
 
12
    ostools.py remove [FILES...] [DIRS...]
 
13
                    remove files or directories (recursive)
 
14
"""
 
15
 
 
16
import glob
 
17
import os
 
18
import shutil
 
19
import sys
 
20
 
 
21
 
 
22
def main(argv=None):
 
23
    if argv is None:
 
24
        argv = sys.argv[1:]
 
25
 
 
26
    if not argv:
 
27
        argv = ['help']
 
28
 
 
29
    cmd = argv.pop(0)
 
30
 
 
31
    if cmd == 'help':
 
32
        print __doc__
 
33
        return 0
 
34
 
 
35
    if cmd == 'copytodir':
 
36
        if len(argv) < 2:
 
37
            print "Usage:  ostools.py copytodir FILES... DIR"
 
38
            return 1
 
39
 
 
40
        todir = argv.pop()
 
41
        if not os.path.exists(todir):
 
42
            os.makedirs(todir)
 
43
        if not os.path.isdir(todir):
 
44
            print "Error: Destination is not a directory"
 
45
            return 2
 
46
 
 
47
        files = []
 
48
        for possible_glob in argv:
 
49
            files += glob.glob(possible_glob)
 
50
 
 
51
        for src in files:
 
52
            dest = os.path.join(todir, os.path.basename(src))
 
53
            shutil.copy(src, dest)
 
54
            print "Copied:", src, "=>", dest
 
55
 
 
56
        return 0
 
57
 
 
58
    if cmd == 'remove':
 
59
        if len(argv) == 0:
 
60
            print "Usage:  ostools.py remove [FILES...] [DIRS...]"
 
61
            return 1
 
62
 
 
63
        filesdirs = []
 
64
        for possible_glob in argv:
 
65
            filesdirs += glob.glob(possible_glob)
 
66
 
 
67
        for i in filesdirs:
 
68
            if os.path.isdir(i):
 
69
                shutil.rmtree(i)
 
70
                print "Removed:", i
 
71
            elif os.path.isfile(i):
 
72
                os.remove(i)
 
73
                print "Removed:", i
 
74
            else:
 
75
                print "Not found:", i
 
76
 
 
77
        return 0
 
78
 
 
79
    print "Usage error"
 
80
    print __doc__
 
81
    return 1
 
82
 
 
83
 
 
84
if __name__ == "__main__":
 
85
    sys.exit(main())