a/trunk/wharfie/wharfie.py | b/trunk/wharfie/wharfie.py | ||
---|---|---|---|
... |
... |
||
91 | from shutil import copyfile |
91 | from shutil import copyfile |
92 | from lib import makefile as make |
92 | from lib import makefile as make |
93 | from lib import actions |
93 | from lib import actions |
94 | from lib import files |
94 | from lib import files |
95 | 95 | ||
96 | regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|COPY|ENTRYPOINT|SOURCE|LICENSE|ENV|[a-zA-Z0-9]+)([^\n]*)'; |
96 | regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|COPY|WORKDIR|ENTRYPOINT|SOURCE|LICENSE|ENV|ARG|EXPOSE|[a-zA-Z0-9]+)([^\n]*)'; |
97 | g_depend = ''; |
97 | g_depend = ''; |
98 | 98 | ||
99 | # |
99 | # |
100 | # Read a Wharfile |
100 | # Read a Wharfile |
101 | # |
101 | # |
... |
... |
||
111 | if bld != '': |
111 | if bld != '': |
112 | dep.append(bld); |
112 | dep.append(bld); |
113 | if g_depend != '': |
113 | if g_depend != '': |
114 | dep.append(g_depend); |
114 | dep.append(g_depend); |
115 | 115 | ||
116 | if cmd[0] not in ('FROM', 'ENV'): |
116 | if cmd[0] not in ('FROM', 'ENV', 'ARG', 'EXPOSE', 'WORKDIR'): |
117 | g_allDepends += str(cmd); |
117 | g_allDepends += str(cmd); |
118 | if g_allDepends != '': |
118 | if g_allDepends != '': |
119 | bld = format(0xFFFFFFFF & binascii.crc32(g_allDepends), '02X') + ".piling.tar"; |
119 | bld = format(0xFFFFFFFF & binascii.crc32(g_allDepends), '02X') + ".piling.tar"; |
120 | 120 | ||
121 | # EXPOSE |
||
122 | if cmd[0] == 'EXPOSE': |
||
123 | pass |
||
124 | # WORKDIR |
||
125 | elif cmd[0] == 'WORKDIR': |
||
126 | actions.workingdir(bld, dep, cmd) |
||
121 | # FROM |
127 | # FROM |
122 | if cmd[0] == 'FROM': |
128 | elif cmd[0] == 'FROM': |
123 | # special handling for debootstrap |
129 | # special handling for debootstrap |
124 | if cmd[1].lstrip().startswith("debian_"): |
130 | if cmd[1].lstrip().startswith("debian_"): |
125 | g_depend = cmd[1].lstrip() + ".tar"; |
131 | g_depend = cmd[1].lstrip() + ".tar"; |
126 | else: |
132 | else: |
127 | g_depend = files.input_file(cmd[1]); |
133 | g_depend = files.input_file(cmd[1]); |
128 | 134 | ||
129 | # ENV |
135 | # ENV / ARG |
130 | elif cmd[0] == 'ENV': |
136 | elif cmd[0] == 'ENV' or cmd[0] == 'ARG': |
137 | arg = cmd[1].lstrip() |
||
138 | if (not " " in arg) and ("=" in arg): |
||
139 | arg = arg.replace("=", " ") |
||
131 | make.environment.append(cmd[1]); |
140 | make.environment.append(arg); |
132 | 141 | ||
133 | # RUN |
142 | # RUN |
134 | elif cmd[0] == 'RUN': |
143 | elif cmd[0] == 'RUN': |
135 | makeTarget=actions.run(bld, dep, cmd) |
144 | makeTarget=actions.run(bld, dep, cmd) |
136 | make.makeTargets.append(makeTarget); |
145 | make.makeTargets.append(makeTarget); |