Skip to content

Commit bfb96be

Browse files
committed
Add: Cobra structure
1 parent 68a57a8 commit bfb96be

13 files changed

Lines changed: 146 additions & 30 deletions

File tree

alteriso5/cmd/build.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package cmd
2+
3+
import (
4+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/build"
5+
"github.com/Hayao0819/nahi/cobrautils"
6+
)
7+
8+
func init() {
9+
cobrautils.AddSubCmds(build.Cmd())
10+
}

alteriso5/cmd/build/build.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package build
22

33
import (
44
"errors"
5-
"fmt"
65
"os"
76
"path"
87

@@ -35,14 +34,3 @@ func build() error {
3534
target := config.NewTarget([]string{"x86_64"}, outDir)
3635
return work.Build(profile, target)
3736
}
38-
39-
func Main() {
40-
if err := check(); err != nil {
41-
fmt.Fprintln(os.Stderr, err)
42-
os.Exit(1)
43-
}
44-
45-
if err := build(); err != nil {
46-
fmt.Fprintln(os.Stderr, err)
47-
}
48-
}

alteriso5/cmd/build/cmd.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package build
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"time"
7+
8+
"github.com/FascodeNet/alterlinux/alteriso5/utils"
9+
"github.com/spf13/cobra"
10+
)
11+
12+
func Cmd() *cobra.Command {
13+
cmd := cobra.Command{
14+
Use: "build",
15+
Short: "Build an ISO image",
16+
RunE: func(cmd *cobra.Command, args []string) error {
17+
18+
utils.OnSignal(func(s os.Signal) {
19+
fmt.Println("Received signal:", s)
20+
os.Exit(1)
21+
}, os.Interrupt)
22+
time.Sleep(20 * time.Second)
23+
24+
if err := check(); err != nil {
25+
cmd.PrintErrln(err)
26+
os.Exit(1)
27+
}
28+
29+
if err := build(); err != nil {
30+
cmd.PrintErrln(err)
31+
}
32+
33+
return nil
34+
},
35+
}
36+
37+
return &cmd
38+
}

alteriso5/cmd/clean.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package cmd
2+
3+
import (
4+
"github.com/FascodeNet/alterlinux/alteriso5/cmd/clean"
5+
"github.com/Hayao0819/nahi/cobrautils"
6+
)
7+
8+
func init() {
9+
cobrautils.AddSubCmds(clean.Cmd())
10+
}

alteriso5/cmd/clean/cmd.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package clean
2+
3+
import "github.com/spf13/cobra"
4+
5+
func Cmd() *cobra.Command {
6+
cmd := cobra.Command{
7+
Use: "clean",
8+
Short: "Clean the working directory",
9+
RunE: func(cmd *cobra.Command, args []string) error {
10+
11+
return nil
12+
},
13+
}
14+
15+
return &cmd
16+
17+
}

alteriso5/cmd/root.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
package cmd
22

3-
import "github.com/FascodeNet/alterlinux/alteriso5/cmd/build"
3+
import (
4+
"github.com/Hayao0819/nahi/cobrautils"
5+
"github.com/spf13/cobra"
6+
)
47

5-
func Build() {
6-
build.Main()
8+
func Root() *cobra.Command {
9+
root := cobra.Command{
10+
Use: "alteriso5",
11+
Short: "AlterISO5 is a tool to build Arch Linux live ISO images",
12+
}
13+
14+
cobrautils.AddSubCmdsToRoot(&root)
15+
16+
return &root
717
}

alteriso5/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
module github.com/FascodeNet/alterlinux/alteriso5
22

33
go 1.22.2
4+
5+
require (
6+
github.com/Hayao0819/nahi v0.0.0-20240206062916-9e007fa67d66 // indirect
7+
github.com/inconshreveable/mousetrap v1.1.0 // indirect
8+
github.com/spf13/cobra v1.8.0 // indirect
9+
github.com/spf13/pflag v1.0.5 // indirect
10+
)

alteriso5/go.sum

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
github.com/Hayao0819/nahi v0.0.0-20240206062916-9e007fa67d66 h1:fylheZbDj30rUrGb4kj9uvtjGsiMREWpKwVQeFDWpUE=
2+
github.com/Hayao0819/nahi v0.0.0-20240206062916-9e007fa67d66/go.mod h1:P3boyG1B2+4/J6ln65zsY2XRFitM/LcvKppzwXAPjGw=
3+
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
4+
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
5+
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
6+
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
7+
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
8+
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
9+
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
10+
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
11+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
12+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

alteriso5/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package main
33
import "github.com/FascodeNet/alterlinux/alteriso5/cmd"
44

55
func main() {
6-
cmd.Build()
6+
root := cmd.Root()
7+
if err := root.Execute(); err != nil {
8+
root.PrintErrln(err)
9+
}
710
}

alteriso5/utils/dir.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package utils
2+
3+
import "os"
4+
5+
func MkdirsAll(dirs ...string) error {
6+
for _, dir := range dirs {
7+
if err := os.MkdirAll(dir, 0755); err != nil {
8+
return err
9+
}
10+
}
11+
return nil
12+
}

0 commit comments

Comments
 (0)