2
0

make.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #/bin/sh
  2. CURR_DIR=$(cd $(dirname $0);pwd)
  3. VER="`date +"1.%Y.%m.%d-%H%M"`"
  4. SMARTDNS_DIR=$CURR_DIR/../../
  5. SMARTDNS_BIN=$SMARTDNS_DIR/src/smartdns
  6. SMARTDNS_CONF=$SMARTDNS_DIR/etc/smartdns/smartdns.conf
  7. showhelp()
  8. {
  9. echo "Usage: make [OPTION]"
  10. echo "Options:"
  11. echo " -o output directory."
  12. echo " --arch archtecture."
  13. echo " --ver version."
  14. echo " -h show this message."
  15. }
  16. build()
  17. {
  18. ROOT=/tmp/smartdns-optware
  19. rm -fr $ROOT
  20. mkdir -p $ROOT
  21. cp $CURR_DIR/* $ROOT/ -af
  22. cd $ROOT/
  23. mkdir $ROOT/opt/usr/sbin -p
  24. mkdir $ROOT/opt/etc/init.d -p
  25. mkdir $ROOT/opt/etc/smartdns/ -p
  26. cp $SMARTDNS_CONF $ROOT/opt/etc/smartdns/
  27. cp $CURR_DIR/S50smartdns $ROOT/opt/etc/init.d/
  28. cp $SMARTDNS_BIN $ROOT/opt/usr/sbin
  29. sed -i "s/^\(bind .*\):53/\1:535/g" $ROOT/opt/etc/smartdns/smartdns.conf
  30. sed -i "s/# *server-name smartdns/server-name smartdns/g" $ROOT/opt/etc/smartdns/smartdns.conf
  31. sed -i "s/^Architecture.*/Architecture: $ARCH/g" $ROOT/control/control
  32. sed -i "s/Version:.*/Version: $VER/" $ROOT/control/control
  33. cd $ROOT/control
  34. chmod +x *
  35. tar zcf ../control.tar.gz ./
  36. cd $ROOT
  37. tar zcf data.tar.gz opt
  38. tar zcf $OUTPUTDIR/smartdns.$VER.$ARCH.ipk control.tar.gz data.tar.gz debian-binary
  39. rm -fr $ROOT/
  40. }
  41. main()
  42. {
  43. OPTS=`getopt -o o:h --long arch:,ver: \
  44. -n "" -- "$@"`
  45. if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
  46. # Note the quotes around `$TEMP': they are essential!
  47. eval set -- "$OPTS"
  48. while true; do
  49. case "$1" in
  50. --arch)
  51. ARCH="$2"
  52. shift 2;;
  53. --ver)
  54. VER="$2"
  55. shift 2;;
  56. -o )
  57. OUTPUTDIR="$2"
  58. shift 2;;
  59. -h | --help )
  60. showhelp
  61. return 0
  62. shift ;;
  63. -- ) shift; break ;;
  64. * ) break ;;
  65. esac
  66. done
  67. if [ -z "$ARCH" ]; then
  68. echo "please input arch."
  69. return 1;
  70. fi
  71. if [ -z "$OUTPUTDIR" ]; then
  72. OUTPUTDIR=$CURR_DIR;
  73. fi
  74. build
  75. }
  76. main $@
  77. exit $?