You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
2.6 KiB

  1. #!/bin/bash
  2. #
  3. # chmod +x ./phalapi-buildapp
  4. # ln -s /path/to/phalapi-buildapp /usr/bin/phalapi-buildapp
  5. #
  6. # @author dogstar 20150403
  7. #
  8. ## Colors
  9. WARNING='\E[1;33m'
  10. NOTE='\E[1;36m'
  11. SUCCESS='\E[1;32m'
  12. FAILURE='\E[1;35m'
  13. RES='\E[0m'
  14. ## Usage
  15. if [ $# -lt 1 ]
  16. then
  17. echo ""
  18. echo -e "${WARNING}Usage:${RES}"
  19. echo " $0 <app>"
  20. echo ""
  21. echo -e "${WARNING}Options:${RES}"
  22. echo -e " ${NOTE}app${RES} Require. The app name you want to create"
  23. echo ""
  24. echo -e "${WARNING}Demo:${RES}"
  25. echo " $0 fun"
  26. echo ""
  27. echo -e "${WARNING}Tips:${RES}"
  28. echo " After created successfully, you can visit it by http://localhost/path/to/{app}."
  29. echo ""
  30. exit 1
  31. fi
  32. ## Env
  33. APP_NAME=$1
  34. APP_NAME=$(echo "$APP_NAME" | sed 's/\b[a-z]/\u&/g')
  35. BASE_PATH=$(cd `dirname $0`; pwd)
  36. if [ -d "$BASE_PATH/../$APP_NAME" ]
  37. then
  38. echo -e "${FAILURE}Error: $APP_NAME exists!${RES}"
  39. echo ""
  40. exit 2
  41. fi
  42. echo "";
  43. ## Step 1. Create App
  44. echo "create ${APP_NAME} ..."
  45. mkdir -p $BASE_PATH/../$APP_NAME
  46. mkdir -p $BASE_PATH/../$APP_NAME/Api
  47. mkdir -p $BASE_PATH/../$APP_NAME/Domain
  48. mkdir -p $BASE_PATH/../$APP_NAME/Model
  49. mkdir -p $BASE_PATH/../$APP_NAME/Common
  50. cp $BASE_PATH/../Demo/Api/Default.php $BASE_PATH/../$APP_NAME/Api/
  51. ## Step 2. Create Tests
  52. echo "create ${APP_NAME} tests ..."
  53. mkdir -p $BASE_PATH/../$APP_NAME/Tests
  54. mkdir -p $BASE_PATH/../$APP_NAME/Tests/Api
  55. mkdir -p $BASE_PATH/../$APP_NAME/Tests/Domain
  56. mkdir -p $BASE_PATH/../$APP_NAME/Tests/Model
  57. mkdir -p $BASE_PATH/../$APP_NAME/Tests/Common
  58. cp $BASE_PATH/../Demo/Tests/test_env.php $BASE_PATH/../$APP_NAME/Tests
  59. cp $BASE_PATH/../Demo/Tests/Api/Api_Default_Test.php $BASE_PATH/../$APP_NAME/Tests/Api/
  60. cp $BASE_PATH/../Demo/Tests/phpunit.xml $BASE_PATH/../$APP_NAME/Tests/
  61. ## Step 3. Create Bootstrap
  62. echo "create ${APP_NAME} bootstarp ..."
  63. #PUBLIC_APP_NAME=$(echo "$APP_NAME" | sed 's/[A-Z]/\l&/g')
  64. #bugfixed by 阿董
  65. PUBLIC_APP_NAME=$(echo "$APP_NAME" | tr '[A-Z]' '[a-z]')
  66. mkdir -p $BASE_PATH/../Public/$PUBLIC_APP_NAME
  67. cp $BASE_PATH/../Public/demo/checkApiParams.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/
  68. cp $BASE_PATH/../Public/demo/listAllApis.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/
  69. cp $BASE_PATH/../Public/demo/index.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/
  70. #MacOS support 与GNU SED兼容, bugfixed by x2x4
  71. sed -i .bk -e "s/Demo/$APP_NAME/g" $BASE_PATH/../Public/$PUBLIC_APP_NAME/*.php
  72. rm -r $BASE_PATH/../Public/$PUBLIC_APP_NAME/*.bk
  73. sed -i .bk -e "s/Demo/$APP_NAME/g" $BASE_PATH/../$APP_NAME/Tests/*.php
  74. rm -r $BASE_PATH/../$APP_NAME/Tests/*.bk
  75. echo ""
  76. echo -e "${SUCCESS}OK! ${APP_NAME} has been created successfully!${RES}"
  77. echo ""