build.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. abspath=$(cd "$(dirname "$0")";pwd)
  3. source $abspath/func.sh
  4. if [ $# -lt 1 ] ;then
  5. echo "Usage:$0 all|clean" && exit
  6. fi
  7. root_path=$(pwd)
  8. system=$(uname -s)
  9. if [ "$system" == "Linux" ] ;then
  10. platform="linux"
  11. else
  12. platform="macosx"
  13. fi
  14. if [ "$1" == "all" ] ;then
  15. # compile skynet
  16. echo "开始编译skynet..."
  17. cd $root_path/skynet
  18. real_path=$(pwd)
  19. echo "cd $real_path"
  20. if [ "$platform" == "macosx" ] ;then
  21. make $platform MALLOC_STATICLIB= SKYNET_DEFINES=-DNOUSE_JEMALLOC
  22. else
  23. make $platform
  24. fi
  25. # compile 3rd
  26. echo "创建三方库目录..."
  27. mkdir -p ./lib/luaclib/
  28. mkdir -p ./lib/cservice
  29. echo "开始编译第三方库..."
  30. elif [ "$1" == "init" ] ; then
  31. echo "复制配置文件目录..."
  32. if [[ ! -n $2 ]]; then
  33. green_echo "请指明源路径" && exit
  34. fi
  35. echo $2
  36. echo $(pwd)
  37. rm -rf ./run/etc
  38. mkdir -p ./run/etc
  39. cp ./run/common/preload.lua ./run/etc/preload.lua
  40. cp ./run/common/public.conf ./run/etc/public.conf
  41. cp -rf ./run/$2/* ./run/etc/
  42. set_global
  43. cd $root_path
  44. echo "system = '$platform'" >> ./run/etc/public.conf
  45. nodeList=`get_process_list`
  46. loggerSet=`get_config loggerSet`
  47. for pname in ${nodeList[@]} ; do
  48. ori_node=`get_cluster_name ${pname}`
  49. blue_echo "new nodename: ${pname} clusterName: ${ori_node}"
  50. # if [[ ${ori_node} != ${pname} ]] ; then
  51. # fi
  52. cp -rf ./run/common/${ori_node}.conf ./run/etc/${pname}.conf
  53. if [ "$platform" == "macosx" ] ;then
  54. res=`sed -i "" "s/nodeName = \"${ori_node}\"/nodeName = \"${pname}\"/g" ./run/etc/${pname}.conf`
  55. else
  56. res=`sed -i "s/nodeName = \"${ori_node}\"/nodeName = \"${pname}\"/g" ./run/etc/${pname}.conf`
  57. fi
  58. if [[ ${loggerSet} = "add" ]]; then
  59. echo -e "\nlogger = root..\"log/${pname}.log\"\n" >> ./run/etc/${pname}.conf
  60. fi
  61. done
  62. exit 1
  63. elif [ "$1" == "clean" ] ; then
  64. rm -rf ./lib/luaclib/*.so
  65. rm -rf ./lib/cservice/*.so
  66. cd $root_path/skynet
  67. make $1
  68. fi
  69. echo -e "\n"
  70. cd $root_path/3rd
  71. real_path=$(pwd)
  72. sh build.sh $1