droneci.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/env bash
  2. while true;do ls | grep -q dockerbunker.sh;if [[ $? == 0 ]];then BASE_DIR=$PWD;break;else cd ../;fi;done
  3. PROPER_NAME="Drone CI"
  4. SERVICE_NAME="$(echo -e "${PROPER_NAME,,}" | tr -cd '[:alnum:]')"
  5. PROMPT_SSL=1
  6. declare -a environment=( "data/env/dockerbunker.env" "data/include/init.sh" )
  7. for env in "${environment[@]}";do
  8. [[ -f "${BASE_DIR}"/$env ]] && source "${BASE_DIR}"/$env
  9. done
  10. declare -A WEB_SERVICES
  11. declare -a containers=( "${SERVICE_NAME}-service-dockerbunker" )
  12. declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
  13. declare -A IMAGES=( [service]="drone/drone:1" )
  14. declare -A volumes=( [${SERVICE_NAME}-data-vol-1]="/data" )
  15. declare -a networks=( )
  16. [[ -z $1 ]] && options_menu
  17. configure() {
  18. pre_configure_routine
  19. echo -e "# \e[4mDrone CI Settings\e[0m"
  20. set_domain
  21. read -p "Gogs server address: " -ei "https://" DRONE_GOGS_SERVER
  22. read -p "Gogs username: " -ei "" GOGS_USER
  23. cat <<-EOF >> "${SERVICE_ENV}"
  24. PROPER_NAME="${PROPER_NAME}"
  25. SERVICE_NAME=${SERVICE_NAME}
  26. SSL_CHOICE=${SSL_CHOICE}
  27. LE_EMAIL=${LE_EMAIL}
  28. DRONE_GOGS_SERVER=${DRONE_GOGS_SERVER}
  29. DRONE_SERVER_HOST=${SERVICE_DOMAIN}
  30. DRONE_SERVER_PROTO=https
  31. DRONE_RUNNER_CAPACITY=2
  32. DRONE_TLS_AUTOCERT=false
  33. DRONE_GIT_ALWAYS_AUTH=false
  34. DRONE_USER_CREATE=username:${GOGS_USER},admin:true
  35. DRONE_DATABASE_SECRET=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 32)
  36. SERVICE_DOMAIN=${SERVICE_DOMAIN}
  37. EOF
  38. post_configure_routine
  39. }
  40. if [[ $1 == "letsencrypt" ]];then
  41. $1 $*
  42. else
  43. $1
  44. fi