add kill, list and run commands

This commit is contained in:
A.Unger
2020-06-04 13:43:03 +02:00
parent 6abc81dc81
commit 1cc12b0dd5
4 changed files with 170 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
package command
import (
"fmt"
"log"
"net"
"net/rpc"
"os"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis/pkg/config"
"github.com/owncloud/ocis/pkg/register"
)
// KillCommand is the entrypoint for the accounts command.
func KillCommand(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "kill",
Usage: "Kill an extension by name",
Category: "Runtime",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "hostname",
Value: "localhost",
EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"},
Destination: &cfg.Runtime.Hostname,
},
&cli.StringFlag{
Name: "port",
Value: "10666",
EnvVars: []string{"OCIS_RUNTIME_PORT"},
Destination: &cfg.Runtime.Port,
},
},
Action: func(c *cli.Context) error {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Hostname, cfg.Runtime.Port))
if err != nil {
log.Fatal("dialing:", err)
}
var arg1 int
if err := client.Call("Service.Kill", os.Args[2], &arg1); err != nil {
log.Fatal(err)
}
fmt.Printf("process %v terminated", os.Args[2])
return nil
},
}
}
func init() {
register.AddCommand(KillCommand)
}
+55
View File
@@ -0,0 +1,55 @@
package command
import (
"fmt"
"log"
"net"
"net/rpc"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis/pkg/config"
"github.com/owncloud/ocis/pkg/register"
)
// ListCommand is the entrypoint for the accounts command.
func ListCommand(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "list",
Usage: "Lists running ocis extensions",
Category: "Runtime",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "hostname",
Value: "localhost",
EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"},
Destination: &cfg.Runtime.Hostname,
},
&cli.StringFlag{
Name: "port",
Value: "10666",
EnvVars: []string{"OCIS_RUNTIME_PORT"},
Destination: &cfg.Runtime.Port,
},
},
Action: func(c *cli.Context) error {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Hostname, cfg.Runtime.Port))
if err != nil {
log.Fatal("dialing:", err)
}
var arg1 string
if err := client.Call("Service.List", struct{}{}, &arg1); err != nil {
log.Fatal(err)
}
fmt.Println(arg1)
return nil
},
}
}
func init() {
register.AddCommand(ListCommand)
}
+57
View File
@@ -0,0 +1,57 @@
package command
import (
"fmt"
"log"
"net"
"net/rpc"
"os"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis/pkg/config"
"github.com/owncloud/ocis/pkg/register"
"github.com/refs/pman/pkg/process"
)
// RunCommand is the entrypoint for the accounts command.
func RunCommand(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "run",
Usage: "Runs an extension",
Category: "Runtime",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "hostname",
Value: "localhost",
EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"},
Destination: &cfg.Runtime.Hostname,
},
&cli.StringFlag{
Name: "port",
Value: "10666",
EnvVars: []string{"OCIS_RUNTIME_PORT"},
Destination: &cfg.Runtime.Port,
},
},
Action: func(c *cli.Context) error {
client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Hostname, cfg.Runtime.Port))
if err != nil {
log.Fatal("dialing:", err)
}
proc := process.NewProcEntry(os.Args[2], []string{os.Args[2]}...)
var res int
if err := client.Call("Service.Start", proc, &res); err != nil {
log.Fatal(err)
}
fmt.Println(res)
return nil
},
}
}
func init() {
register.AddCommand(RunCommand)
}
+3
View File
@@ -14,6 +14,7 @@ import (
settings "github.com/owncloud/ocis-settings/pkg/config"
thumbnails "github.com/owncloud/ocis-thumbnails/pkg/config"
webdav "github.com/owncloud/ocis-webdav/pkg/config"
pman "github.com/refs/pman/pkg/config"
)
// Log defines the available logging configuration.
@@ -73,6 +74,7 @@ type Config struct {
Thumbnails *thumbnails.Config
WebDAV *webdav.Config
Settings *settings.Config
Runtime *pman.Config
}
// New initializes a new configuration with or without defaults.
@@ -91,5 +93,6 @@ func New() *Config {
Proxy: proxy.New(),
Thumbnails: thumbnails.New(),
Settings: settings.New(),
Runtime: pman.NewConfig(),
}
}