公司ARES studio 自动上传编译启动服务工具

公司ARES studio 自动上传编译启动服务工具

//在执行文件中
// conf
//  |--app.conf
//   monitor.exe
//  app.conf中的内容
//  command="ls -l"
//  monitordir ="c:\\test"
//  在windows下会执行两次
// https://github.com/howeyc/fsnotify/issues/106

package main

import (
    "fmt"
    "os/exec"
    "strings"
    "time"

    "github.com/astaxie/beego"
)

func mkcmd(command string, logflag int) error {
    argArray := strings.Split(command, " ")
    cmd := exec.Command(argArray[0], argArray[1:]...)

    //buff, err := cmd.Output() //不要用这个,否则不能捕捉到错误的信息
    buff, err := cmd.CombinedOutput()
    if logflag == 1 {
        fmt.Println(string(buff))
    }

    if err != nil {

        return err
    }
    return nil
}

func echoinfo() {
    var echo string
    for i := 0; i < 50; i++ {
        echo = echo + "="

    }
    fmt.Println(echo)
    fmt.Println()
}

func main() {
    command := beego.AppConfig.String("command")

    echoinfo()

    fmt.Println("upload begin, please waiting .... !")

    fmt.Println(command)
    if error := mkcmd(command, 0); error != nil {
        fmt.Printf("updown files %s", error)
        return
    }
    fmt.Println("upload end ... !")

    echoinfo()

    fmt.Println("clear log begin ... !")
    clearlog := beego.AppConfig.String("clearlog")
    fmt.Println(clearlog)
    if error := mkcmd(clearlog, 1); error != nil {
        fmt.Printf("compile files %s", error)
        return
    }
    fmt.Println("clear log end ... !")

    echoinfo()

    fmt.Println("compile begin ... !")
    compile := beego.AppConfig.String("compile")
    fmt.Println(compile)
    if error := mkcmd(compile, 1); error != nil {
        fmt.Printf("compile files %s", error)
        return
    }
    fmt.Println("compile end ... !")

    echoinfo()

    fmt.Println("allstop begin ... !")
    stopservice := beego.AppConfig.String("stopservice")
    fmt.Println(stopservice)
    for i := 0; i < 2; i++ {

        if error := mkcmd(stopservice, 1); error != nil {
            fmt.Printf("stopservice %s", error)
            return
        }
    }
    fmt.Println("stopservice end ... !")

    time.Sleep(2 * time.Second)

    echoinfo()

    fmt.Println("startservice begin ... !")
    startservice := beego.AppConfig.String("startservice")
    fmt.Println(startservice)

    if error := mkcmd(startservice, 1); error != nil {
        fmt.Printf("startservice %s", error)
        return
    }

    fmt.Println("startservice end ... !")

}

配置文件

command=”pscp.exe -P 22 -pw cloudta F:\yunta\TA* cloudta@192.168.224.128:/home/cloudta/dev/src/”

PASSWORD=”cloudta”
USERNAME=”cloudta”
REMOTEIP=”192.168.224.128”

#make.sh
#source /home/cloudta/.bash_profile
#cd /home/cloudta/dev/src 一定要进入这个目录才行
#sh +x makeall
clearlog=plink -v -ssh -P 22 -pw cloudta cloudta@192.168.224.128 /home/cloudta/workspace/dlog/clear.sh

compile=”plink -v -ssh -P 22 -pw cloudta cloudta@192.168.224.128 /home/cloudta/dev/src/make.sh”

stopservice=”plink -v -ssh -P 22 -pw cloudta cloudta@192.168.224.128 /home/cloudta/workspace/allstop.sh”
startservice=”plink -v -ssh -P 22 -pw cloudta cloudta@192.168.224.128 /home/cloudta/workspace/allstart.sh”

远程makefile

source /home/cloudta/.bash_profile
cd /home/cloudta/dev/src #一定要指定进入这个目录,否则不能编译
sh +x makeall

清除日志sh

cd /home/cloudta/workspace/dlog;
for file_a in *; do  
    filename=`basename $file_a`  
    if [ $filename != "clear.sh" ] ; then
   echo "" > $filename ;
   fi
done   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值