]> git.ipfire.org Git - ipfire-3.x.git/blame - tools/make-interactive
Added new package: dosfstools.
[ipfire-3.x.git] / tools / make-interactive
CommitLineData
ce85f613
MT
1#!/bin/bash
2###############################################################################
3# #
4# IPFire.org - A linux based firewall #
cfccf561 5# Copyright (C) 2008 Michael Tremer & Christian Schmidt #
ce85f613
MT
6# #
7# This program is free software: you can redistribute it and/or modify #
8# it under the terms of the GNU General Public License as published by #
9# the Free Software Foundation, either version 3 of the License, or #
10# (at your option) any later version. #
11# #
12# This program is distributed in the hope that it will be useful, #
13# but WITHOUT ANY WARRANTY; without even the implied warranty of #
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15# GNU General Public License for more details. #
16# #
17# You should have received a copy of the GNU General Public License #
18# along with this program. If not, see <http://www.gnu.org/licenses/>. #
19# #
20###############################################################################
21
3349c6c9
MT
22usage() {
23 cat doc/make.sh-usage
c90c0df9 24 exit 1
3349c6c9
MT
25}
26
ce85f613
MT
27case "$1" in
28build)
4ce0b818 29 # check for prerequisites
38e7c3ac 30 check_build
602bc6fa
MT
31 # check for sanity of code
32 check_sanity
cfccf561
MT
33 # compile the distro right now
34 build
8db8436b
MT
35 # beeps when finished
36 echo -ne '\a'
ce85f613 37 ;;
38e7c3ac 38
ce85f613 39shell)
145db3c5 40 shift
ce85f613
MT
41 # enter a shell inside LFS chroot
42 # may be used to change kernel settings
43 prepareenv
145db3c5 44 entershell $@
ce85f613 45 ;;
cfccf561
MT
46
47batch)
48 # build the distro in background
cfccf561 49 case "$2" in
e694da34
MT
50 cron)
51 cron_run
52 ;;
cfccf561 53 start)
94c4cae8 54 batch_start $3
cfccf561
MT
55 ;;
56 _run)
57 batch_run
58 ;;
59 attach|watch)
60 batch_attach
61 ;;
3349c6c9
MT
62 *)
63 usage
64 ;;
cfccf561
MT
65 esac
66 ;;
67
d4b2e100
MT
68buildspy|bs)
69 # control buildspy
70 case "$2" in
71 start)
72 build_spy start
73 ;;
74 stop)
75 build_spy exit
76 ;;
77 *)
78 usage
79 ;;
80 esac
81 ;;
82
689314ee
MT
83ccache)
84 # ccache options
cfccf561 85 case "$2" in
689314ee 86 stats)
cfccf561
MT
87 ccache_stats
88 ;;
689314ee
MT
89 esac
90 ;;
91
145db3c5
MT
92config)
93 # config options
94 case "$2" in
95 kernel)
96 prepareenv
ffd2cf01 97 entershell bash /usr/src/src/scripts/edit-kernel-config
145db3c5
MT
98 ;;
99 *)
100 usage
101 ;;
102 esac
103 ;;
104
689314ee
MT
105distcc|distccd)
106 # distcc(d) commands
107 case "$2" in
108 start)
109 distccd_start
110 ;;
111 stop)
112 distccd_stop
113 ;;
4ca87d59
MT
114 restart)
115 distccd_restart
116 ;;
689314ee 117 stats|mon)
cfccf561
MT
118 distcc_mon
119 ;;
120 esac
121 ;;
38e7c3ac 122
ce85f613 123clean)
38e7c3ac 124 for i in $(mount | grep $BASEDIR | cut -d " " -f 1); do
ce85f613
MT
125 umount $i
126 done
127
128 stdumount
ce85f613 129
d50ae2d1
MT
130 WHAT=${TARGET}
131 [ "$2" = "--all" ] && WHAT="${POSSIBLE_TARGETS}"
132
133 for i in ${WHAT}; do
9e49fc4c
MT
134 echo -ne "Cleaning ${BOLD}$i${NORMAL} buildtree"
135 rm -rf $BASEDIR/build_$i
136 rm -rf $BASEDIR/log_$i
137 rm -rf $BASEDIR/packages_$i
138 beautify message DONE
139 done
140 echo -ne "Removing ${BOLD}general files${NORMAL}"
141 rm -f $FAILED $RUNNING 2>/dev/null
ce85f613
MT
142 beautify message DONE
143 ;;
38e7c3ac 144
da1befdd 145source|src)
11f0ec61 146 LOGFILE=$BASEDIR/log_${TARGET}/_build.00-preparation.log
da1befdd
MT
147 case "$2" in
148 get|pull|download)
149 getsource
150 ;;
151 put|push|upload)
152 putsource
153 ;;
421f4db0 154 list)
51111711 155 pkg_list_packages | tee -a $BASEDIR/doc/packages-list.txt
421f4db0 156 ;;
da1befdd 157 esac
ce85f613 158 ;;
38e7c3ac 159
ce85f613 160toolchain)
da1befdd
MT
161 case "$2" in
162 get|pull|download)
163 gettoolchain
164 ;;
165 put|push|upload)
166 puttoolchain
167 ;;
763463bc 168 ""|-*)
da1befdd
MT
169 prepareenv
170 # Check if host can build the toolchain
171 check_toolchain
b91fa051 172
da1befdd 173 toolchain_build
b91fa051 174
da1befdd
MT
175 stdumount
176 echo -ne "\ntarball creation "
177 [ -d $BASEDIR/cache/toolchains ] || mkdir $BASEDIR/cache/toolchains
11f0ec61 178 cd $BASEDIR && tar cj --exclude='log_${TARGET}/_build.*.log' \
da1befdd 179 --file=cache/toolchains/$TOOLCHAINNAME.tar.bz2 \
11f0ec61 180 build_${TARGET} log_${TARGET} >> $LOGFILE
da1befdd
MT
181 beautify message DONE
182 echo `ls -sh cache/toolchains/$TOOLCHAINNAME.tar.bz2`
183
184 stdumount
38e7c3ac 185
492712a2 186 [ "$2" = "--put" ] && puttoolchain
da1befdd
MT
187 ;;
188 *)
189 usage
190 ;;
191 esac
ce85f613 192 ;;
bd4be397 193
af48bccf
MT
194toolchains)
195 for i in $(check_supported_targets); do
66a00f9a 196 TARGET=$i $0 clean
763463bc 197 TARGET=$i $0 toolchain --put
af48bccf
MT
198 done
199 ;;
200
e70deaa8
MT
201target)
202 case "$2" in
203 put|push|upload)
204 puttarget
205 ;;
206 *)
207 usage
208 ;;
209 esac
210 ;;
211
bd4be397 212check)
c90c0df9
MT
213 case "$2" in
214 cpu)
215 [ -z "$3" ] && usage
216 if check_cpu $3; then
217 echo -n "CPU has flag $3"
218 beautify message DONE
219 else
220 dialogerror "CPU hasn't got flag $3"
221 exit 1
222 fi
223 ;;
c90c0df9
MT
224 sanity)
225 check_sanity $3
226 ;;
aac56982
MT
227 target*)
228 check_supported_targets
229 ;;
c90c0df9
MT
230 *)
231 usage
232 ;;
233 esac
bd4be397 234 ;;
38e7c3ac 235
4b7f6462 236g[iu]t)
4b7f6462
MT
237 COMMAND=$2
238 shift 2
239 case "$COMMAND" in
0627b392 240 update|pull)
4b7f6462 241 git_pull $*
ce85f613
MT
242 ;;
243 commit|ci)
0627b392 244 git_commit $*
ce85f613 245 ;;
e4cff7fc 246 dist|export|archive)
4b7f6462 247 git_export $*
e4cff7fc 248 ;;
8e878964 249 push)
4b7f6462 250 git_push $*
8e878964 251 ;;
ce85f613 252 diff|di)
4b7f6462 253 git_diff $*
ce85f613
MT
254 ;;
255 log)
4b7f6462 256 git_log $*
ce85f613 257 ;;
48a17e7d
MT
258 gc)
259 git_gc
260 ;;
12b17e35
MT
261 shortlog|slog)
262 git_shortlog
263 ;;
3763394e 264 put-key)
3763394e
MT
265 ssh_cert $*
266 ;;
4b7f6462
MT
267 *) # If no command matches run git directly
268 git $*
269 ;;
ce85f613
MT
270 esac
271 ;;
38e7c3ac 272
aef37aba
MT
273package*|pkg)
274 case "$2" in
275 list|show|ls)
276 pkg_list_packages
277 ;;
7f62382d
MT
278 file*)
279 for i in $BASEDIR/lfs/*; do
280 pkg_files $i
281 done
282 ;;
d6ec57e7
MT
283 info)
284 shift 2
285 format_desc() {
286 MAX_LENGTH=38
287 INPUT=$@
288
289 LINE=""
290 LENGTH=0
291 for word in $INPUT; do
292 LENGTH=$(expr $LENGTH + ${#word})
293 if [ "$LENGTH" -ge "$MAX_LENGTH" ]; then
294 printf "$LINE\n"
295 LINE=" ${word} "
296 LENGTH=${#word}
297 else
298 LINE="$LINE${word} "
299 fi
300 #echo "-- ($word) $LINE"
301 done
302 printf "$LINE\n"
303 }
304 for pkg in $@; do
305 (
306 eval "$(pkg_info ${pkg})"
307 echo "############################################################"
308 echo -e "# ${CLR_BOLD_RED}PACKAGE INFO${NORMAL}"
309 echo "############################################################"
310 for val in NAME VERSION RELEASE break GROUP MAINTAINER break URL LICENSE; do
311 if [ "${val}" == "break" ]; then
312 echo " ---------------------------------------- "
313 else
314 printf "${CLR_BOLD_RED}%-12s${NORMAL}: ${!val}\n" ${val}
315 fi
316 done
317 for val in SHORT DESC; do
318 printf "${CLR_BOLD_RED}%-12s${NORMAL}: " ${val}
319 format_desc ${!val}
320 done
321 )
322 done
323 ;;
aef37aba
MT
324 group*)
325 echo "====== All available groups of packages in ${NAME}-${VERSION} ======"
326 echo
327 for group in $(pkg_list_groups); do
328 echo " * ${group}"
329 done
330 ;;
6c5f9f29
MT
331 raw)
332 pkg_info $3
333 ;;
020b04c0
MT
334 wikiinfo)
335 shift 2
336 pkg_info_wiki $@
337 ;;
12b17e35
MT
338 wikilist)
339 pkg_list_packages_wiki
340 ;;
020b04c0
MT
341 *)
342 usage
343 ;;
aef37aba
MT
344 esac
345 ;;
346
021ed203
MT
347push)
348 putsource
349 git_push
350 ;;
351
352pull)
11f0ec61 353 LOGFILE=$BASEDIR/log_${TARGET}/_build.00-preparation.log
021ed203
MT
354 git_pull
355 check_sanity
356 getsource
357 ;;
358
b07899d1
MT
359rootfiles|rf)
360 case "$2" in
361 check|ch)
362 rootfiles_check $3
363 ;;
364 commit|ci|update|up)
365 rootfiles_commit
366 ;;
367 copy|cp)
368 shift 2
369 rootfiles_copy $@
370 ;;
371 fix)
372 rootfiles_check --fix
373 ;;
374 *)
375 usage
376 ;;
377 esac
378 ;;
379
95642cd9
MT
380vm|qemu)
381 case "$2" in
382 boot|start|run)
383 shift 2
384 qemu_start $*
385 ;;
386
387 clean)
388 rm -rf $BASEDIR/vm
389 ;;
390 esac
391 ;;
392
ce85f613 393*)
3349c6c9 394 usage
ce85f613 395 ;;
38e7c3ac 396
ce85f613 397esac