29 from optparse
import OptionParser
30 parser = OptionParser()
31 parser.add_option(
"-x",
"--exclude",action=
"append",
32 metavar=
"PATTERN", default = [],
33 dest=
"exclusions", help=
"which files/directories to avoid to install")
34 parser.add_option(
"-l",
"--log",action=
"store",
35 dest=
"logfile", default=
"install.log",
36 help=
"where to store the informations about installed files [default: %default]")
37 parser.add_option(
"-d",
"--destname",action=
"store",
38 dest=
"destname", default=
None,
39 help=
"name to use when installing the source into the destination directory [default: source name]")
40 parser.add_option(
"-u",
"--uninstall",action=
"store_true",
41 dest=
"uninstall", default=
False,
43 parser.add_option(
"-s",
"--symlink",action=
"store_true",
44 dest=
"symlink", default=
False,
45 help=
"create symlinks instead of copy")
50 (opts,args) = parser.parse_args()
55 parser.error(
"Exclusion list does not make sense for uninstall")
56 opts.destination = args
58 log = load(open(opts.logfile,
"rb"))
63 dump(log,open(opts.logfile,
"wb"))
69 if x.errno != 2 :
raise
72 parser.error(
"Specify at least one source and (only) one destination")
73 opts.destination = args[-1]
74 opts.sources = args[:-1]
76 log = load(open(opts.logfile,
"rb"))
80 if len(opts.sources) != 1:
81 parser.error(
"no more that 2 args with --symlink")
82 opts.destination, opts.destname = split(opts.destination)
83 install(opts.sources,opts.destination,
84 log,opts.exclusions,opts.destname,
85 opts.symlink, realpath(
dirname(opts.logfile)))
86 dump(log,open(opts.logfile,
"wb"))