Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
kolah committed Jun 11, 2018
1 parent 2c96733 commit fcc9881
Show file tree
Hide file tree
Showing 12 changed files with 828 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/runner
/runner.exe
/vendor
/tmp
126 changes: 126 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
#
# [prune]
# non-go = false
# go-tests = true
# unused-packages = true


[prune]
go-tests = true
unused-packages = true

[[constraint]]
name = "github.com/spf13/cobra"
version = "0.0.3"

[[constraint]]
name = "github.com/spf13/viper"
version = "1.0.2"

[[constraint]]
branch = "master"
name = "github.com/windmilleng/fsnotify"
65 changes: 65 additions & 0 deletions cmd/control.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package cmd

import (
"github.com/spf13/cobra"
"net"
"log"
"runner/config"
"fmt"
"bufio"
"os"
)

var controlCmd = &cobra.Command{
Use: "ctl [debug|rebuild|stop]",
Short: "Allows to set runner mode",

Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
log.Fatal("Invalid number of arguments")
}

c, err := net.Dial("unix", config.Config.SocketPath)
if err != nil {
fmt.Fprintln(cmd.OutOrStderr(), "Dial error", err)
os.Exit(1)
}
defer c.Close()

var msg string

mode := args[0]
switch mode {
case "debug":
fmt.Fprintln(cmd.OutOrStdout(), "Switching runner to debug mode")
msg = fmt.Sprintf("%s %s", ClientSetMode, RunnerModeDebug)
break
case "rebuild":
fmt.Fprintln(cmd.OutOrStdout(), "Switching runner to live rebuild mode")
msg = fmt.Sprintf("%s %s", ClientSetMode, RunnerModeLiveRebuild)
case "stop":
fmt.Fprintln(cmd.OutOrStdout(), "Stopping runner")
msg = fmt.Sprintf("%s", ClientStop)
default:
fmt.Fprintln(cmd.OutOrStderr(), "Invalid mode", mode)
os.Exit(1)
}

fmt.Fprintln(cmd.OutOrStdout(), "Client sent:", msg)
_, err = fmt.Fprintln(c, string([]byte(msg)))
if err != nil {
fmt.Fprintln(cmd.OutOrStderr(), "Write error:", err)
os.Exit(1)
}

b := bufio.NewReader(c)

line, err := b.ReadBytes('\n')
if err != nil {
fmt.Fprintln(cmd.OutOrStderr(), "Read error:", err)
os.Exit(1)

}
fmt.Fprintln(cmd.OutOrStdout(), "Response:", string(line[0:len(line)-1]))
},
}

0 comments on commit fcc9881

Please sign in to comment.