-
Notifications
You must be signed in to change notification settings - Fork 4
/
main.go
48 lines (39 loc) · 1.41 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"errors"
"os"
"github.com/Orange-OpenSource/travis-resource/model"
"encoding/json"
"github.com/Orange-OpenSource/travis-resource/common"
. "github.com/Orange-OpenSource/travis-resource/in/command"
"github.com/Orange-OpenSource/travis-resource/messager"
)
func main() {
mes := messager.GetMessager()
if len(os.Args) <= 1 {
mes.FatalIf("error in command argument", errors.New("you must pass a folder as a first argument"))
}
destinationFolder := os.Args[1]
err := os.MkdirAll(destinationFolder, 0755)
if err != nil {
mes.FatalIf("creating destination", err)
}
var request model.InRequest
err = json.NewDecoder(os.Stdin).Decode(&request)
mes.FatalIf("failed to read request ", err)
if request.Source.Repository == "" {
mes.FatalIf("can't get build", errors.New("there is no repository set"))
}
travisClient, err := common.MakeTravisClient(request.Source)
mes.FatalIf("failed to create travis client", err)
inCommand := &InCommand{travisClient, request, destinationFolder, mes}
build, listBuild, err := inCommand.GetBuildInfo()
mes.FatalIf("can't get build", err)
err = inCommand.WriteInBuildInfoFile(listBuild)
mes.FatalIf("can't create file build info", err)
err = inCommand.DownloadLogs(build)
mes.FatalIf("can't download logs", err)
commit, _, err := travisClient.Commits.GetFromBuild(build.Id)
mes.FatalIf("can't get commit", err)
inCommand.SendResponse(build, *commit)
}