update_stage0.sh 1.0 KB

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