工作分享|使用脚本切换编译环境改良

猿之前自己搞了个脚本(工作分享|使用脚本快捷切换编译环境)来切换自己的编译环境,提高工作效率。但是随着近期维护的项目逐渐变多,原来的脚本已不满足需求。因此,猿对自己的脚本进行了一定的改造,贡献出来供大家参考。

执行脚本(build.sh)
  • 脚本说明
    脚本中会以source方式引入自己定义的一个build_util.sh脚本,此脚本为执行脚本提供输出提示信息方法和过滤用户输入的方法,最后用户输入的文件目录选项,模块选项,操作的文件夹选项都会通过build_util.sh脚本进行处理和分发。

  • 脚本源码
    #!bin/sh
    . /home/script/build_util.sh
    # open target project #
    funOperationHint 1
    read chooseProject
    # switch operation moudle
    funOperationHint 2
    read chooseModule
    # open folder
    funOperationHint 3
    read chooseFolder
    # operation target folder
    funOperationTarget ${chooseProject} ${chooseModule} ${chooseFolder}

工具脚本(build_util.sh)
  • 脚本说明
    脚本中会同样以source方式引入每个分支的脚本,此脚本除了输出提示信息外,最后会通过funOperationTarget()方法选择不同的脚本方法去处理。
    这里需要注意的是,以source方式引入的脚本中,最好不要有重名方法。因为猿最初是每个分支脚本中定义相同的方法然后去执行发现执行结果错误。后来想想原因也简单,脚本source相当于include, 本身直接调用一个同名方法,脚本也不确认究竟要执行哪个脚本中的方法,肯定执行不正确。

  • 脚本源码
    #!bin/sh
    . /home/script/build_branch1.sh
    . /home/script/build_branch2.sh
    . /home/script/build_branch3.sh
    . /home/script/build_branch4.sh
    # hint message about operation project name
    funOperationHint() {
    case $1 in
    1)
    echo -e "\033[1;33m
    ## Choose Operation Project ##
    | 1. Device A |
    | 2. Device B |
    | 3. Device C |
    | 4. Device D |
    ##############################
    \033[0m"
    ;;
    2)
    echo -e "\033[1;33m
    #### Choose Operation Project ####
    | 1. Module ModuleA |
    | 2. Module ModuleB |
    ###################################
    \033[0m"
    ;;
    3)
    echo -e "\033[1;33m
    ## Choose Operation Type ##
    | 1. Folder package |
    | 2. Folder out |
    ############################
    \033[0m"
    ;;
    esac
    echo -e "\033[1;35m*****input the switch key*****\033[0m"
    }
    # target to handle the command
    funOperationTarget() {
    case $1 in
    1)
    handleOperationOnA $2 $3
    ;;
    2)
    handleOperationOnB $2 $3
    ;;
    3)
    handleOperationOnC $2 $3
    ;;
    4)
    handleOperationOnD $2 $3
    ;;
    esac
    }

分支脚本(build_branch1.sh)
  • 脚本说明
    分支脚本中主要实现了handleOperationOnC方法的实现,主要用于判断模块与操作目录,根据输入的模块选项进行编译或者打开目录。由于实现部分代码比较类似,主要列出一项用于参考。

  • 脚本源码
    #!bin/sh
    # handle operation
    handleOperationOnA() {
    case $1 in
    1)
    handleFolderA $2
    ;;
    2)
    handleFolderB $2
    ;;
    esac
    }

    # handle FolderA
    handleFolderA() {
         case $1 in
             1)
                cd folderA/folderC
                 ;;
             2)
                cd /folderD/folderE
                ;;
       esac
    }
    
    # handleFolderB
    handleT1FileManager() {
         case $1 in
            1)
              sudo sed -ri 's#^.*JAVA_HOME=.*$#export JAVA_HOME=/usr/lib/java/jdk1.6.0_41#' /etc/profile
              . /etc/profile
              . build/envsetup.sh
              lunch branch-userdebug
              cd /home/folderF
              ;;
          2)
              cd FolderG
          ;;
      esac
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容