make.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. showhelp()
  7. {
  8. echo "Usage: make [OPTION]"
  9. echo "Options:"
  10. echo " -o output directory."
  11. echo " --arch archtecture."
  12. echo " --ver version."
  13. echo " -h show this message."
  14. }
  15. build()
  16. {
  17. PKG_ROOT=/tmp/smartdns-linux
  18. rm -fr $PKG_ROOT
  19. mkdir -p $PKG_ROOT/smartdns
  20. cd $PKG_ROOT/
  21. # Generic x86_64
  22. mkdir $PKG_ROOT/smartdns/usr/sbin -p
  23. mkdir $PKG_ROOT/smartdns/package -p
  24. mkdir $PKG_ROOT/smartdns/systemd -p
  25. cd $SMARTDNS_DIR
  26. cp package/windows $PKG_ROOT/smartdns/package/ -a
  27. cp etc *.md LICENSE package/linux/install $PKG_ROOT/smartdns/ -a
  28. cp systemd/smartdns.service $PKG_ROOT/smartdns/systemd
  29. cp src/smartdns $PKG_ROOT/smartdns/usr/sbin -a
  30. chmod +x $PKG_ROOT/smartdns/install
  31. if [ $? -ne 0 ]; then
  32. echo "copy smartdns file failed"
  33. rm -fr $PKG_ROOT
  34. exit 1
  35. fi
  36. cd $PKG_ROOT
  37. tar zcf $OUTPUTDIR/smartdns.$VER.$FILEARCH.tar.gz smartdns
  38. if [ $? -ne 0 ]; then
  39. echo "create package failed"
  40. rm -fr $PKG_ROOT
  41. exit 1
  42. fi
  43. cd $CURR_DIR
  44. rm -fr $PKG_ROOT
  45. }
  46. main()
  47. {
  48. OPTS=`getopt -o o:h --long arch:,ver:,filearch: \
  49. -n "" -- "$@"`
  50. if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
  51. # Note the quotes around `$TEMP': they are essential!
  52. eval set -- "$OPTS"
  53. while true; do
  54. case "$1" in
  55. --arch)
  56. ARCH="$2"
  57. shift 2;;
  58. --filearch)
  59. FILEARCH="$2"
  60. shift 2;;
  61. --ver)
  62. VER="$2"
  63. shift 2;;
  64. -o )
  65. OUTPUTDIR="$2"
  66. shift 2;;
  67. -h | --help )
  68. showhelp
  69. return 0
  70. shift ;;
  71. -- ) shift; break ;;
  72. * ) break ;;
  73. esac
  74. done
  75. if [ -z "$ARCH" ]; then
  76. echo "please input arch."
  77. return 1;
  78. fi
  79. if [ -z "$FILEARCH" ]; then
  80. FILEARCH=$ARCH
  81. fi
  82. if [ -z "$OUTPUTDIR" ]; then
  83. OUTPUTDIR=$CURR_DIR;
  84. fi
  85. build
  86. }
  87. main $@
  88. exit $?