mirror of https://github.com/python/cpython
80 lines
1.2 KiB
Python
Executable File
80 lines
1.2 KiB
Python
Executable File
#! /usr/local/python
|
|
|
|
# Add a cache to each of the files given as command line arguments
|
|
|
|
|
|
# Usage:
|
|
#
|
|
# Vaddcache [file] ...
|
|
|
|
|
|
# Options:
|
|
#
|
|
# file ... : file(s) to modify; default film.video
|
|
|
|
|
|
import sys
|
|
sys.path.append('/ufs/guido/src/video')
|
|
import VFile
|
|
import getopt
|
|
|
|
|
|
# Global options
|
|
|
|
# None
|
|
|
|
|
|
# Main program -- mostly command line parsing
|
|
|
|
def main():
|
|
opts, args = getopt.getopt(sys.argv[1:], '')
|
|
if not args:
|
|
args = ['film.video']
|
|
sts = 0
|
|
for filename in args:
|
|
if process(filename):
|
|
sts = 1
|
|
sys.exit(sts)
|
|
|
|
|
|
# Process one file
|
|
|
|
def process(filename):
|
|
try:
|
|
fp = open(filename, 'r+')
|
|
vin = VFile.RandomVinFile().initfp(fp, filename)
|
|
except IOError, msg:
|
|
sys.stderr.write(filename + ': I/O error: ' + `msg` + '\n')
|
|
return 1
|
|
except VFile.Error, msg:
|
|
sys.stderr.write(msg + '\n')
|
|
return 1
|
|
except EOFError:
|
|
sys.stderr.write(filename + ': EOF in video file\n')
|
|
return 1
|
|
|
|
try:
|
|
vin.readcache()
|
|
hascache = 1
|
|
except VFile.Error:
|
|
hascache = 0
|
|
|
|
if hascache:
|
|
sys.stderr.write(filename + ': already has a cache\n')
|
|
vin.close()
|
|
return 1
|
|
|
|
vin.printinfo()
|
|
vin.warmcache()
|
|
vin.writecache()
|
|
vin.close()
|
|
return 0
|
|
|
|
|
|
# Don't forget to call the main program
|
|
|
|
try:
|
|
main()
|
|
except KeyboardInterrupt:
|
|
print '[Interrupt]'
|