Skip to content

Commit

Permalink
feat: Setup slc GO project
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrejsika committed Apr 5, 2024
1 parent de57e58 commit d589a7c
Show file tree
Hide file tree
Showing 7 changed files with 111 additions and 0 deletions.
11 changes: 11 additions & 0 deletions cmd/cmd.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package cmd

import (
"github.com/sikalabs/slc/cmd/root"
_ "github.com/sikalabs/slc/cmd/version"
"github.com/spf13/cobra"
)

func Execute() {
cobra.CheckErr(root.RootCmd.Execute())
}
11 changes: 11 additions & 0 deletions cmd/root/root.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package root

import (
"github.com/sikalabs/slc/version"
"github.com/spf13/cobra"
)

var RootCmd = &cobra.Command{
Use: "slc",
Short: "SikaLabs Cloud CLI, " + version.Version,
}
57 changes: 57 additions & 0 deletions cmd/version/version.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package version

import (
"encoding/json"
"fmt"
"runtime"

"github.com/sikalabs/slc/cmd/root"
"github.com/sikalabs/slc/version"
"github.com/spf13/cobra"
)

var FlagJson bool
var CmdFlagVerbose bool

var Cmd = &cobra.Command{
Use: "version",
Short: "Prints version",
Aliases: []string{"v"},
Args: cobra.NoArgs,
Run: func(c *cobra.Command, args []string) {
if FlagJson {
outJson, err := json.Marshal(map[string]string{
"version": version.Version,
"os": runtime.GOOS,
"arch": runtime.GOARCH,
})
if err != nil {
panic(err)
}
fmt.Println(string(outJson))
} else {
if CmdFlagVerbose {
fmt.Printf("%s %s %s\n", version.Version, runtime.GOOS, runtime.GOARCH)
} else {
fmt.Printf("%s\n", version.Version)
}
}
},
}

func init() {
root.RootCmd.AddCommand(Cmd)
Cmd.Flags().BoolVarP(
&CmdFlagVerbose,
"verbose",
"v",
false,
"Verbose version output",
)
Cmd.PersistentFlags().BoolVar(
&FlagJson,
"json",
false,
"Format output to JSON",
)
}
12 changes: 12 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module github.com/sikalabs/slc

go 1.21

toolchain go1.21.6

require github.com/spf13/cobra v1.8.0

require (
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
)
10 changes: 10 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
7 changes: 7 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package main

import "github.com/sikalabs/slc/cmd"

func main() {
cmd.Execute()
}
3 changes: 3 additions & 0 deletions version/version.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package version

var Version string = "v0.1.0-dev"

0 comments on commit d589a7c

Please sign in to comment.