made cli into sub files for modularity

This commit is contained in:
2021-03-29 01:57:49 +04:00
parent 1258b16a84
commit a7dc4cbce4
6 changed files with 107 additions and 51 deletions

19
cmd/action.go Normal file
View File

@@ -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
}

31
cmd/flags.go Normal file
View File

@@ -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,
},
}

2
go.mod
View File

@@ -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

1
go.sum
View File

@@ -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=

105
main.go
View File

@@ -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 {

Binary file not shown.