make.sh 2.6 KB

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