summaryrefslogtreecommitdiffstats
path: root/Mac/Unsupported
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2003-11-19 14:34:18 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2003-11-19 14:34:18 (GMT)
commit28ecf70db57828db2ca279643bf9aeca7662f35c (patch)
tree09b7767bbc411f85313b58d6fe7e5e67d9392973 /Mac/Unsupported
parent6045b9c93511c767f6cfa2d2fa299c76181acd9b (diff)
downloadcpython-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.py97
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()