#!/bin/bash

# 备份目录脚本

# 参数配置
## 版本号
VERSION="0.1.0"
## 当前的日期、日期时间
DATE=`date +%Y%m%d`
DATETIME=`date +%Y%m%d`_`date +%H%M%S`
## 代理地址
PROXY_URL=$1

# 相关方法
## 帮助信息
help () {
  echo 'Usage:  sp 代理URL'
  echo '参数说明：'
  echo '  $1： 代理URL'
  echo '示例：'
  echo '  使用 192.168.0.100:7890 作为代理： sp 192.168.0.100:7890'
}
## 版本号
version () {
 echo 'sp '$version
}

## 设置 systemd 代理
setSystemdProxy () {
  echo '------------------------------ 开始设置系统代理 （ /etc/systemd/system.conf.d/proxy.conf ） ... ------------------------------'
  
  mkdir -p /etc/systemd/system.conf.d/
  echo '[Manager]' >> /etc/systemd/system.conf.d/proxy.conf
  echo 'DefaultEnvironment="HTTP_PROXY=http://'$PROXY_URL'"' >> /etc/systemd/system.conf.d/proxy.conf
  echo 'DefaultEnvironment="HTTPS_PROXY=http://'$PROXY_URL'"' >> /etc/systemd/system.conf.d/proxy.conf
  echo 'DefaultEnvironment="FTP_PROXY=http://'$PROXY_URL'"' >> /etc/systemd/system.conf.d/proxy.conf
  echo 'DefaultEnvironment="NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,10.20.0.0/16,192.168.0.0/16,.svc,.cluster.local"' >> /etc/systemd/system.conf.d/proxy.conf
  systemctl daemon-reexec
 
  echo '------------------------------ 系统代理设置完成! ------------------------------' 
}

## 设置用户代理
setUserProxy () {
  echo '------------------------------ 开始设置用户代理 （ /etc/sysconfig/proxy ） ... ------------------------------'
  
  cp -rpf /etc/sysconfig/proxy /etc/sysconfig/proxy.bak.$DATE
  sed -i 's#PROXY_ENABLED="no"#PROXY_ENABLED="yes"#g' /etc/sysconfig/proxy
  sed -i 's#HTTP_PROXY=""#HTTP_PROXY="http://'$PROXY_URL'"#g' /etc/sysconfig/proxy
  sed -i 's#HTTPS_PROXY=""#HTTPS_PROXY="http://'$PROXY_URL'"#g' /etc/sysconfig/proxy
  sed -i 's#FTP_PROXY=""#FTP_PROXY="http://'$PROXY_URL'"#g' /etc/sysconfig/proxy
  source /etc/sysconfig/proxy
 
  echo '------------------------------ 用户代理设置完成! ------------------------------' 
}

## 设置命令行代理
setShellProxy () {
  echo '------------------------------ 开始设置命令行代理 （ /etc/profile 和 ~/.bashrc ） ... ------------------------------'

  cp -rpf /etc/profile /etc/profile.bak.$DATE
  echo '# PROXY Env Begin' >> /etc/profile
  echo 'export http_proxy="http://'$PROXY_URL'"' >> /etc/profile
  echo 'export https_proxy="http://'$PROXY_URL'"' >> /etc/profile
  echo 'export ftp_proxy="http://'$PROXY_URL'"' >> /etc/profile
  echo 'export no_proxy="localhost,127.0.0.1,10.96.0.0/12,10.20.0.0/16,192.168.0.0/16,.svc,.cluster.local"' >> /etc/profile
  echo '# PROXY Env End' >> /etc/profile
  source /etc/profile

  cp -rpf ~/.bashrc ~/.bashrc.bak.$DATE
  echo '# PROXY Env Begin' >> ~/.bashrc
  echo 'export http_proxy="http://'$PROXY_URL'"' >> ~/.bashrc
  echo 'export https_proxy="http://'$PROXY_URL'"' >> ~/.bashrc
  echo 'export ftp_proxy="http://'$PROXY_URL'"' >> ~/.bashrc
  echo 'export no_proxy="localhost,127.0.0.1,10.96.0.0/12,10.20.0.0/16,192.168.0.0/16,.svc,.cluster.local"' >> ~/.bashrc
  echo '# PROXY Env End' >> ~/.bashrc
  source /etc/profile

  echo '------------------------------ 命令行代理设置完成! ------------------------------' 
}


## 设置代理
sp () {
  echo '===================================================================================================='
  echo `date +%Y-%m-%d` `date +%H:%M:%S`
  echo '============================== 开始配置代理 ' $PROXY_URL ' ...... =============================='

  setSystemdProxy
  setUserProxy
  setShellProxy
  
  echo '============================== '$PROXY_URL' 代理配置成功！！！ =============================='
  echo `date +%Y-%m-%d` `date +%H:%M:%S`
  echo '===================================================================================================='
}

# 执行方法
case $1 in
  help)
    help
    ;;
  version)
    version
    ;;
  *)
    sp
    ;;
esac

