diff --git a/cmd/action.go b/cmd/action.go new file mode 100644 index 0000000..f324eb4 --- /dev/null +++ b/cmd/action.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "git.sr.ht/~akilan1999/p2p-rendering-computation/server" + "github.com/urfave/cli/v2" +) + +var CliAction = func(ctx *cli.Context) error { + if Mode == "server" { + server.Server() + } + + //Call function to create Docker container + if IpAddress != "" { + + } + + return nil +} diff --git a/cmd/flags.go b/cmd/flags.go new file mode 100644 index 0000000..d0510d9 --- /dev/null +++ b/cmd/flags.go @@ -0,0 +1,31 @@ +package cmd + +import ( + "github.com/urfave/cli/v2" +) + +var Mode,IpAddress string +var List_servers, Ip_table bool + +var AppConfigFlags = []cli.Flag{ + // Deprecated to be implemented using GRPC + &cli.StringFlag{ + Name: "Mode", + Value: "server", + Usage: "Specifies mode of running", + EnvVars: []string{"P2P_MODE"}, + Destination: &Mode, + }, + &cli.BoolFlag{ + Name: "ListServers", + Usage: "List servers which can render tasks", + EnvVars: []string{"LIST_SERVERS"}, + Destination: &List_servers, + }, + &cli.StringFlag{ + Name: "CreateVM", + Usage: "Creates Docker container on the selected server", + EnvVars: []string{"CREATE_VM"}, + Destination: &IpAddress, + }, +} \ No newline at end of file diff --git a/go.mod b/go.mod index cc31bb2..8fb45ae 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect github.com/docker/distribution v2.7.1+incompatible // indirect github.com/docker/docker v20.10.0-beta1.0.20201113105859-b6bfff2a628f+incompatible - github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-connections v0.4.0 github.com/docker/go-units v0.4.0 // indirect github.com/gin-gonic/gin v1.6.3 github.com/go-ole/go-ole v1.2.5 // indirect diff --git a/go.sum b/go.sum index b6a05d9..49b688f 100644 --- a/go.sum +++ b/go.sum @@ -566,6 +566,7 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU= github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= diff --git a/main.go b/main.go index c89ef41..bf17e3e 100644 --- a/main.go +++ b/main.go @@ -1,15 +1,14 @@ package main import ( - "git.sr.ht/~akilan1999/p2p-rendering-computation/p2p" - "git.sr.ht/~akilan1999/p2p-rendering-computation/server" + "git.sr.ht/~akilan1999/p2p-rendering-computation/cmd" "github.com/urfave/cli/v2" "log" "os" ) // VERSION specifies the version of the platform -var VERSION = "0.0.1" +var VERSION = "1.0.0" var mode string // Varaibles if mode is client @@ -18,53 +17,59 @@ var List_servers, Ip_table bool func main() { - app := &cli.App{ - Name: "p2p-rendering-computation", - Usage: "allows you to batch tasks in a peer to peer network", - Version: VERSION, - Flags: []cli.Flag { - &cli.StringFlag{ - Name: "mode", - Value: "client", - Usage: "Specifies mode of running", - Destination: &mode, - }, - /* list servers */ - &cli.BoolFlag{ - Name: "List-servers", - Usage: "List servers which can render tasks", - Destination: &List_servers, - }, - /* List iptable */ - &cli.BoolFlag{ - Name: "Ip-table", - Usage: "Listing servers that can be connected to", - Destination: &Ip_table, - }, - - }, - /*action for all flags*/ - Action: func(c *cli.Context) error { - /* action when certain flags are selected */ - /*if Run_script == "None" { - fmt.Println("script not excuted as run script not selected") - }*/ - - if Ip_table == true || List_servers == true{ - err := p2p.PrintIpTable() - if err != nil { - log.Fatal(err) - } - } - - // If mode server is selected - if mode == "server"{ - server.Server() - } - - return nil - }, - } + app := cli.NewApp() + app.Name = "p2p-rendering-computation" + app.Usage = "p2p cli application to create and access VMs in other servers" + app.Version = VERSION + app.Flags = cmd.AppConfigFlags + app.Action = cmd.CliAction + //app := &cli.App{ + // Name: "p2p-rendering-computation", + // Usage: "allows you to batch tasks in a peer to peer network", + // Version: VERSION, + // Flags: []cli.Flag { + // &cli.StringFlag{ + // Name: "mode", + // Value: "client", + // Usage: "Specifies mode of running", + // Destination: &mode, + // }, + // /* list servers */ + // &cli.BoolFlag{ + // Name: "List-servers", + // Usage: "List servers which can render tasks", + // Destination: &List_servers, + // }, + // /* List iptable */ + // &cli.BoolFlag{ + // Name: "Ip-table", + // Usage: "Listing servers that can be connected to", + // Destination: &Ip_table, + // }, + // + // }, + // /*action for all flags*/ + // Action: func(c *cli.Context) error { + // /* action when certain flags are selected */ + // /*if Run_script == "None" { + // fmt.Println("script not excuted as run script not selected") + // }*/ + // + // if Ip_table == true || List_servers == true{ + // err := p2p.PrintIpTable() + // if err != nil { + // log.Fatal(err) + // } + // } + // + // // If mode server is selected + // if mode == "server"{ + // server.Server() + // } + // + // return nil + // }, + //} err := app.Run(os.Args) if err != nil { diff --git a/p2p-rendering-computation b/p2p-rendering-computation deleted file mode 100755 index 48267c2..0000000 Binary files a/p2p-rendering-computation and /dev/null differ