|
a/trunk/wharfie/lib/actions.py |
|
b/trunk/wharfie/lib/actions.py |
|
... |
|
... |
21 |
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE |
21 |
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE |
22 |
# OR OTHER DEALINGS IN THE SOFTWARE. |
22 |
# OR OTHER DEALINGS IN THE SOFTWARE. |
23 |
# |
23 |
# |
24 |
################################################################################ |
24 |
################################################################################ |
25 |
|
25 |
|
|
|
26 |
from lib import makefile as make |
|
|
27 |
from lib import files |
|
|
28 |
|
26 |
def run(name, dep, cmd): |
29 |
def run(name, dep, cmd): |
27 |
makeTarget = { |
30 |
makeTarget = { |
28 |
'comment' : "%s %s" % (cmd[0], cmd[1]), |
31 |
'comment' : "%s %s" % (cmd[0], cmd[1]), |
29 |
'name': name, |
32 |
'name': name, |
30 |
'dep': dep, |
33 |
'dep': dep, |
|
... |
|
... |
40 |
'hostcmd': cmd[1] |
43 |
'hostcmd': cmd[1] |
41 |
}; |
44 |
}; |
42 |
return makeTarget; |
45 |
return makeTarget; |
43 |
|
46 |
|
44 |
def add(name, dep, cmd): |
47 |
def add(name, dep, cmd): |
45 |
src,dst = cmd[1].lstrip().split(" ") |
48 |
if " " not in cmd[1].lstrip(): |
|
|
49 |
print ("parse error: ADD needs two arguments. (%s)" % cmd[1].lstrip()) |
|
|
50 |
exit(1) |
|
|
51 |
src,dst = cmd[1].lstrip().split(" ") |
|
|
52 |
isUrl = src.startswith("http://") or src.startswith("https://") or src.startswith("ftp://") |
|
|
53 |
src = files.input_file(src) |
|
|
54 |
# Overwrite potential implicite make rules for file |
|
|
55 |
if not isUrl: |
|
|
56 |
make.makeTargets.append({'name': src, 'dep': '', 'simplecmd': 'touch $@'}); |
46 |
dep.append(src) |
57 |
dep.append(src) |
47 |
myHostCmd = ''' |
58 |
myHostCmd = ''' |
48 |
dest="$(pwd)"; |
59 |
destdir="$(pwd)"; |
49 |
cd ../; |
60 |
src="%s"; |
50 |
mkdir -p $(dirname "${dest}/%s"); |
61 |
dst="%s"; |
51 |
cp -R --preserve=mode %s "${dest}/%s"''' % (dst, src, dst) |
62 |
cd ../; |
|
|
63 |
case "${dst}" in |
|
|
64 |
*/) |
|
|
65 |
mkdir -p "${destdir}/${dst}"; |
|
|
66 |
;; |
|
|
67 |
*) |
|
|
68 |
mkdir -p $(dirname "${destdir}/${dst}"); |
|
|
69 |
;; |
|
|
70 |
esac; |
|
|
71 |
case "${src}" in |
|
|
72 |
*.tar) |
|
|
73 |
cat ${src} | (cd ${destdir}/${dst}; tar -xf -); |
|
|
74 |
;; |
|
|
75 |
*.tar.gz) |
|
|
76 |
cat ${src} | (cd ${destdir}/${dst}; tar -xzf -); |
|
|
77 |
;; |
|
|
78 |
*.tar.bz2) |
|
|
79 |
cat ${src} | (cd ${destdir}/${dst}; tar -xjf -); |
|
|
80 |
;; |
|
|
81 |
*) |
|
|
82 |
cp -R --preserve=mode ${src} "${destdir}/${dst}"; |
|
|
83 |
;; |
|
|
84 |
esac; |
|
|
85 |
''' % (src, dst) |
52 |
|
86 |
|
53 |
makeTarget = { |
87 |
makeTarget = { |
54 |
'comment' : "%s %s" % (cmd[0], cmd[1]), |
88 |
'comment' : "%s %s" % (cmd[0], cmd[1]), |
55 |
'name': name, |
89 |
'name': name, |
56 |
'dep': dep, |
90 |
'dep': dep, |
|
... |
|
... |
111 |
'trgcmd': myTrgCmd, |
145 |
'trgcmd': myTrgCmd, |
112 |
'hostcmd': myHostCmd, |
146 |
'hostcmd': myHostCmd, |
113 |
'temporary': True |
147 |
'temporary': True |
114 |
}; |
148 |
}; |
115 |
|
149 |
|
116 |
|
150 |
def to(name, dep, cmd): |
|
|
151 |
makeTarget = { |
|
|
152 |
'comment' : "%s %s" % (cmd[0], cmd[1]), |
|
|
153 |
'name': cmd[1].lstrip(), |
|
|
154 |
'dep': dep, |
|
|
155 |
'temporary': True |
|
|
156 |
}; |
|
|
157 |
return makeTarget; |
|
|
158 |
|