zoukankan      html  css  js  c++  java
  • shell 自动map和unmap 应用实例url域名【高级版】

    #!/bin/bash
    # ************************ USEAGE **********************************
    # program:mapurl.sh
    # Time:2017/12/14
    # version:V 3.0.0
    # auth: Eden
    # content:user to map or unmap url
    # note:
    #     1.only suitable for cloudfoundry appname's url
    # ******************************************************************
    
    ###url map  function  for  cloudfoundry
    function mapurl(){
    #a="one,two,three,four"
    a=$(cf a|grep $1|tr -s ' '|cut -d ' ' -f 6-|cut -d ',' -f 1-)
    OLD_IFS="$IFS"
    IFS=","
    arr=($a)
    IFS="$OLD_IFS"
    
    for s in ${arr[@]}
    do
     echo "$s"
     echo ${s}|grep -q "/"
     RTN=`echo $?`
     if [[ ${RTN} -eq 0 ]];then
        rurl=$(echo $s|cut -d '/' -f 1)
        rpath=$(echo $s|cut -d '/' -f 2)
        cf map-route $2  $(echo "$rurl"|cut -d '.' -f 2-) -n $(echo "$rurl"|cut -d '.' -f 1) --path ${rpath}
     else
        cf map-route $2  $(echo "$s"|cut -d '.' -f 2-) -n $(echo "$s"|cut -d '.' -f 1) 
     fi
    
    done
    }
    
    ###url unmap  function  for  cloudfoundry
    function unmapurl(){
    a=$(cf a|grep $1|tr -s ' '|cut -d ' ' -f 6-|cut -d ',' -f 1-)
    OLD_IFS="$IFS"
    IFS=","
    arr=($a)
    IFS="$OLD_IFS"
    
    for s in ${arr[@]}
    do
    echo "$s"
    echo ${s}|grep -q "/"
     RTN=`echo $?`
     if [[ ${RTN} -eq 0 ]];then
        rurl=$(echo $s|cut -d '/' -f 1)
        rpath=$(echo $s|cut -d '/' -f 2)
        cf unmap-route $1  $(echo "$rurl"|cut -d '.' -f 2-) -n $(echo "$rurl"|cut -d '.' -f 1) --path ${rpath}
     else
        cf unmap-route $1  $(echo "$s"|cut -d '.' -f 2-) -n $(echo "$s"|cut -d '.' -f 1) 
     fi
    
    done
    }
    #########################################################
    MAP_FLAG=FALSE;
    
    ARGS=`getopt -o at:c:: --long all,type:,clong:: -n 'example.sh' -- "$@"`
    if [ $? != 0 ]; then
        echo "Terminating..."
        exit 1
    fi
    
    #echo $ARGS
    #将规范化后的命令行参数分配至位置参数($1,$2,...)
    eval set -- "${ARGS}"
    
    while true
    do
        case "$1" in
            -a|--all) 
                echo "map and unmap url";
                MAP_FLAG=TRUE;
                shift
                ;;
            -t|--type)
                echo "Option t, argument $2";
                MAP_TYPE=$2
                shift 2
                ;;
            -c|--clong)
                case "$2" in
                    "")
                        echo "Option c, no argument";
                        shift 2  
                        ;;
                    *)
                        echo "Option c, argument $2";
                        shift 2;
                        ;;
                esac
                ;;
            --)
                shift
                break
                ;;
            *)
                echo "Internal error!"
                exit 1
                ;;
        esac
    done
    
    #处理剩余的参数
    for arg in $@
    do
        echo "appname: $arg"
    done
    
    #handles the domain name of the application process
    SOURCE_APPNAME=$1;
    DEST_APPNAME=$2;
    if [[ "_$MAP_FLAG" == "_TRUE" ]];then
        mapurl $SOURCE_APPNAME $DEST_APPNAME;
        unmapurl $SOURCE_APPNAME;
        echo $MAP_FLAG
    else
        if [ "_$(echo $MAP_TYPE|tr 'a-z' 'A-Z')" == "_MAP" ];then
            echo $MAP_TYPE|tr 'a-z' 'A-Z'
            mapurl $SOURCE_APPNAME $DEST_APPNAME ;
            echo "$SOURCE_APPNAME, $DEST_APPNAME" ;
        elif [ "_$(echo $MAP_TYPE|tr 'a-z' 'A-Z')" == "_UNMAP" ];then
            echo $MAP_TYPE|tr 'a-z' 'A-Z'
            unmapurl $SOURCE_APPNAME;
            echo $SOURCE_APPNAME;
        else
            echo  "please input url map type:map or unmap!"    
        fi
    fi
  • 相关阅读:
    python web 2
    python web1(解析url)
    webstrom 今天突然要激活
    数组排序 记录一下
    浏览器添加随机数去除缓存
    vue-cli 安装报错
    vue 初始化项目报错
    深拷贝和浅拷贝
    css3 属性 clip-path
    js数组去重
  • 原文地址:https://www.cnblogs.com/husbandmen/p/8039712.html
Copyright © 2011-2022 走看看