]> git.donarmstrong.com Git - lilypond.git/blob - scripts/build/install.py
Remove StepMake as a separate package
[lilypond.git] / scripts / build / install.py
1 #!@PYTHON@
2 import string
3 import getopt
4 import sys
5 import os
6 import shutil
7 (opts, args) = getopt.getopt (sys.argv[1:], 'b:cdg:m:o:st:', [])
8 transform_base = None
9 group = None
10 owner = None
11 transform = None
12 mode = None 
13 copy = False
14 create_dir = False
15
16 for (o,a) in opts:
17     if o == '-b':
18         transform_base = a
19     elif o == '-c':
20         copy = True
21     elif o == '-d':
22         create_dir = True
23     elif o == '-g':
24         group = a
25     elif o == '-m':
26         mode = string.atoi (a, 8)
27     elif o == '-o':
28         owner = a
29     elif o == '-s':
30         strip = True
31     elif o == '-t':
32         transform = a
33     elif o == '-h':
34         print ''' Usage: $0 [OPTION]... SRCFILE DSTFILE
35  or: $0 [OPTION]... SRCFILES... DIRECTORY
36  or: $0 -d DIRECTORIES...
37
38 In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
39 In the second, create the directory path DIR.
40
41 Options:
42 -b=TRANSFORMBASENAME
43 -c         copy source (using $cpprog) instead of moving (using $mvprog).
44 -d         create directories instead of installing files.
45 -g GROUP   $chgrp installed files to GROUP.
46 -m MODE    $chmod installed files to MODE.
47 -o USER    $chown installed files to USER.
48 -s         strip installed files (using $stripprog).
49 -t=TRANSFORM
50 --help     display this help and exit.
51 --version  display version info and exit.'''
52         sys.exit (0)
53
54 if not mode:
55     if create_dir:
56         mode = 0755
57     else:
58         mode = 0644
59         
60
61 chown_me = []
62
63 dest = None
64 if not create_dir:
65     dest = args.pop()
66
67 for f in args:
68     if create_dir:
69         if os.path.isdir (f):
70             continue
71         
72         os.makedirs (f, mode=mode)
73         chown_me.append (f)
74     else:
75         if copy:
76             if os.path.exists (dest) and not os.path.isdir (dest):
77                 os.remove (dest)
78             shutil.copy2 (f, dest)
79         else:
80             shutil.move (f, dest)
81
82         if os.path.isdir (dest):
83             chown_me.append (os.path.join (dest, os.path.basename (f)))
84         else:
85             chown_me.append (dest)
86
87 for f in chown_me:
88     os.chmod (f, mode)
89     if group <> None or owner <> None:
90         os.chown (f, group, owner)
91     
92     
93
94         
95