diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2003-11-19 14:34:18 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2003-11-19 14:34:18 (GMT) |
commit | 28ecf70db57828db2ca279643bf9aeca7662f35c (patch) | |
tree | 09b7767bbc411f85313b58d6fe7e5e67d9392973 /Mac/Unsupported | |
parent | 6045b9c93511c767f6cfa2d2fa299c76181acd9b (diff) | |
download | cpython-28ecf70db57828db2ca279643bf9aeca7662f35c.zip cpython-28ecf70db57828db2ca279643bf9aeca7662f35c.tar.gz cpython-28ecf70db57828db2ca279643bf9aeca7662f35c.tar.bz2 |
Getting rid of support for MacOS9 and earlier. This is the first step,
and the biggest in size, but probably the easiest. Hunting through the
source code comes next.
Diffstat (limited to 'Mac/Unsupported')
-rw-r--r-- | Mac/Unsupported/unshar.py | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/Mac/Unsupported/unshar.py b/Mac/Unsupported/unshar.py deleted file mode 100644 index ec14f2e..0000000 --- a/Mac/Unsupported/unshar.py +++ /dev/null @@ -1,97 +0,0 @@ -# Extract files from a SHAR archive. -# Run this on the Mac. -# Usage: -# >>> import unshar -# >>> f = open('SHAR') -# >>> unshar.unshar(f) - -import string -import EasyDialogs - -def unshar(fp, verbose=0, overwrite=0): - ofp = None - file = None - while 1: - line = fp.readline() - if verbose > 3: print 'Got:', `line` - if line[:1] == 'X': - # Most common case first - if ofp: ofp.write(line[1:]) - continue - if not line: - if verbose: print 'EOF' - if ofp: - print 'Unterminated file -- closing' - ofp.close() - ofp = None - break - if line[0] == '#': - if verbose: print line, - continue - if line[:14] == 'sed "s/^X//" >': - if verbose: print "!!!", `line` - i = string.find(line, "'") - j = string.find(line, "'", i+1) - if i >= 0 and j > i: - file = line[i+1:j] - if '/' in file: - words = string.splitfields(file, '/') - for funny in '', '.': - while funny in words: words.remove(funny) - for i in range(len(words)): - if words[i] == '..': words[i] = '' - words.insert(0, '') - file = string.joinfields(words, ':') - try: - ofp = open(file, 'r') - ofp.close() - ofp = None - over = 1 - except IOError: - over = 0 - if over and not overwrite: - print 'Skipping', file, '(already exists) ...' - continue - ofp = open(file, 'w') - if over: - print 'Overwriting', file, '...' - else: - print 'Writing', file, '...' - continue - if line == 'END_OF_FILE\n': - if not file: - print 'Unexpected END_OF_FILE marker' - if ofp: - print 'done' - ofp.close() - ofp = None - else: - print 'done skipping' - file = None - continue - if verbose: print "...", `line` - -def main(): - import sys - import os - if len(sys.argv) > 1: - for fname in sys.argv[1:]: - fp = open(fname, 'r') - dir, fn = os.path.split(fname) - if dir: - os.chdir(dir) - unshar(fp) - else: - import macfs - fname = EasyDialogs.AskFileForOpen() - if not fname: - sys.exit(0) - fp = open(fname, 'r') - dirname = EasyDialogs.AskFolder(message='Folder to save files in:') - if not dirname: - sys.exit(0) - os.chdir(dirname) - unshar(fp) - -if __name__ == '__main__': - main() |