take a snapshot before upgrading
[fbsd-stable-mgmt.git] / update_stage0.sh
1 #!/bin/sh
2
3 usage() {
4         echo 'Usage: ...'
5         echo '-c        clean obj'
6         echo '-u        svn update'
7         echo '-j        jobs to be handled'
8         echo 'default to ' ${jarg}
9         echo '---------------------'
10 }
11
12 parse() {
13         RED='\033[0;31m'
14         NC='\033[0m' # No Color
15         while getopts "cnj:" option
16         do
17                 case ${option} in
18                         c)
19                                 CLEANING=1
20                                 ;;
21                         n)
22                                 UPDATE=1
23                                 ;;
24                         j)
25                                 case ${OPTARG} in
26                                 (*[!0-9]*|'')
27                                         echo -e "${RED}number expected for jobs${NC}; default value used."
28                                         ;;
29                                 (*)
30                                         jarg=${OPTARG}
31                                         ;;
32                                 esac
33                                 ;;
34                 esac
35         done
36 }
37
38
39 jarg=`sysctl -n hw.ncpu`
40 usrsrc=${USRSRC:-/usr/src}
41
42 parse ${*}
43
44 if [ ${UPDATE:=-0} -eq 0 ]; then
45         echo "updating ..."
46         git -C ${usrsrc} pull --rebase
47         [ ${?} == 1 ] && exit 1
48 fi
49
50
51 if [ ${CLEANING:=-0} -eq 1 ]; then
52         echo Cleaning
53         chflags -R noschg /usr/obj/* && sync && rm -rf /usr/obj && sync
54 fi
55
56 echo building process on ${jarg} jobs
57 make -j${jarg} -C ${usrsrc} buildworld && make -j${jarg} -C ${usrsrc} kernel \
58         && echo "Reboot the system."
59
60