123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- #!/bin/bash
- # Author: yeho <lj2007331 AT gmail.com>
- # BLOG: https://linuxeye.com
- #
- # Notes: OneinStack for CentOS/RedHat 7+ Debian 9+ and Ubuntu 16+
- #
- # Project home page:
- # https://oneinstack.com
- # https://github.com/oneinstack/oneinstack
- export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
- clear
- printf "
- #######################################################################
- # OneinStack for CentOS/RedHat 7+ Debian 9+ and Ubuntu 16+ #
- # Install/Uninstall Extensions #
- # For more information please visit https://oneinstack.com #
- #######################################################################
- "
- # Check if user is root
- # shellcheck disable=SC2046
- [ $(id -u) != '0' ] && { echo "${CFAILURE}Error: You must be root to run this script${CEND}"; exit 1; }
- oneinstack_dir=$(dirname "`readlink -f $0`")
- # shellcheck disable=SC2164
- pushd ${oneinstack_dir} > /dev/null
- . ./versions.txt
- . ./options.conf
- . ./include/color.sh
- . ./include/check_os.sh
- . ./include/download.sh
- . ./include/get_char.sh
- . ./include/composer.sh
- . ./include/fail2ban.sh
- . ./include/ngx_lua_waf.sh
- # get the out ip country
- OUTIP_STATE=$(./include/ois.${ARCH} ip_state)
- # shellcheck disable=SC2154
- Show_Help() {
- echo
- echo "Usage: $0 command ...
- --help, -h Show this help message
- --install, -i Install
- --uninstall, -u Uninstall
- --composer Composer
- --fail2ban Fail2ban
- --ngx_lua_waf Ngx_lua_waf
- "
- }
- ARG_NUM=$#
- TEMP=`getopt -o hiu --long help,install,uninstall,composer,fail2ban,ngx_lua_waf -- "$@" 2>/dev/null`
- [ $? != 0 ] && echo "${CWARNING}ERROR: unknown argument! ${CEND}" && Show_Help && exit 1
- eval set -- "${TEMP}"
- while :; do
- [ -z "$1" ] && break;
- case "$1" in
- -h|--help)
- Show_Help; exit 0
- ;;
- -i|--install)
- install_flag=y; shift 1
- ;;
- -u|--uninstall)
- uninstall_flag=y; shift 1
- ;;
- --composer)
- composer_flag=y; shift 1
- ;;
- --fail2ban)
- fail2ban_flag=y; shift 1
- ;;
- --ngx_lua_waf)
- ngx_lua_waf_flag=y; shift 1
- ;;
- --)
- shift
- ;;
- *)
- echo "${CWARNING}ERROR: unknown argument! ${CEND}" && Show_Help && exit 1
- ;;
- esac
- done
- ACTION_FUN() {
- while :; do
- echo
- echo "Please select an action:"
- echo -e "\t${CMSG}1${CEND}. install"
- echo -e "\t${CMSG}2${CEND}. uninstall"
- read -e -p "Please input a number:(Default 1 press Enter) " ACTION
- ACTION=${ACTION:-1}
- if [[ ! "${ACTION}" =~ ^[1,2]$ ]]; then
- echo "${CWARNING}input error! Please only input number 1~2${CEND}"
- else
- [ "${ACTION}" == '1' ] && install_flag=y
- [ "${ACTION}" == '2' ] && uninstall_flag=y
- break
- fi
- done
- }
- Menu() {
- while :;do
- printf "
- What Are You Doing?
- \t${CMSG}1${CEND}. Install/Uninstall PHP Composer
- \t${CMSG}2${CEND}. Install/Uninstall fail2ban
- \t${CMSG}3${CEND}. Install/Uninstall ngx_lua_waf
- \t${CMSG}q${CEND}. Exit
- "
- read -e -p "Please input the correct option: " Number
- if [[ ! "${Number}" =~ ^[1-3,q]$ ]]; then
- echo "${CFAILURE}input error! Please only input 1~3 and q${CEND}"
- else
- case "${Number}" in
- 1)
- ACTION_FUN
- if [ "${install_flag}" = 'y' ]; then
- Install_composer
- elif [ "${uninstall_flag}" = 'y' ]; then
- Uninstall_composer
- fi
- ;;
- 2)
- ACTION_FUN
- if [ "${install_flag}" = 'y' ]; then
- Install_fail2ban
- elif [ "${uninstall_flag}" = 'y' ]; then
- Uninstall_fail2ban
- fi
- ;;
- 3)
- ACTION_FUN
- if [ "${install_flag}" = 'y' ]; then
- # shellcheck disable=SC2154
- [ -e "${nginx_install_dir}/sbin/nginx" ] && Nginx_lua_waf
- # shellcheck disable=SC2154
- [ -e "${tengine_install_dir}/sbin/nginx" ] && Tengine_lua_waf
- enable_lua_waf
- elif [ "${uninstall_flag}" = 'y' ]; then
- disable_lua_waf
- fi
- ;;
- q)
- exit
- ;;
- esac
- fi
- done
- }
- if [ ${ARG_NUM} == 0 ]; then
- Menu
- else
- if [ "${composer_flag}" == 'y' ]; then
- if [ "${install_flag}" = 'y' ]; then
- Install_composer
- elif [ "${uninstall_flag}" = 'y' ]; then
- Uninstall_composer
- fi
- fi
- if [ "${fail2ban_flag}" == 'y' ]; then
- if [ "${install_flag}" = 'y' ]; then
- Install_fail2ban
- elif [ "${uninstall_flag}" = 'y' ]; then
- Uninstall_fail2ban
- fi
- fi
- if [ "${ngx_lua_waf_flag}" == 'y' ]; then
- if [ "${install_flag}" = 'y' ]; then
- [ -e "${nginx_install_dir}/sbin/nginx" ] && Nginx_lua_waf
- [ -e "${tengine_install_dir}/sbin/nginx" ] && Tengine_lua_waf
- enable_lua_waf
- elif [ "${uninstall_flag}" = 'y' ]; then
- disable_lua_waf
- fi
- fi
- fi
|