Skip to content

Commit 3701c8e

Browse files
author
mritd
committed
feat(install): allow define install/uninstall dir
allow define install/uninstall dir Signed-off-by: mritd <[email protected]>
1 parent 2d635d8 commit 3701c8e

File tree

4 files changed

+26
-17
lines changed

4 files changed

+26
-17
lines changed

cmd/install.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,18 @@ import (
2121
"github.com/spf13/cobra"
2222
)
2323

24+
var installDir string
2425
var installCmd = &cobra.Command{
2526
Use: "install",
2627
Short: "Install mmh",
2728
Long: `
2829
Install mmh.`,
2930
Run: func(cmd *cobra.Command, args []string) {
30-
utils.Install()
31+
utils.Install(installDir)
3132
},
3233
}
3334

3435
func init() {
36+
installCmd.PersistentFlags().StringVar(&installDir, "dir", "/usr/bin", "install dir")
3537
RootCmd.AddCommand(installCmd)
3638
}

cmd/uninstall.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,18 @@ import (
2121
"github.com/spf13/cobra"
2222
)
2323

24+
var uninstallDir string
2425
var uninstallCmd = &cobra.Command{
2526
Use: "uninstall",
2627
Short: "Uninstall mmh",
2728
Long: `
2829
Uninstall mmh.`,
2930
Run: func(cmd *cobra.Command, args []string) {
30-
utils.Uninstall()
31+
utils.Uninstall(uninstallDir)
3132
},
3233
}
3334

3435
func init() {
36+
uninstallCmd.PersistentFlags().StringVar(&uninstallDir, "dir", "/usr/bin", "uninstall dir")
3537
RootCmd.AddCommand(uninstallCmd)
3638
}

pkg/utils/install.go

+10-12
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,32 @@ import (
2424
"path"
2525
)
2626

27-
const InstallBaseDir = "/usr/bin"
27+
func Install(dir string) {
2828

29-
var BinPaths = []string{
30-
path.Join(InstallBaseDir, "mcp"),
31-
path.Join(InstallBaseDir, "mec"),
32-
path.Join(InstallBaseDir, "mgo"),
33-
}
34-
35-
func Install() {
29+
var BinPaths = []string{
30+
path.Join(dir, "mcp"),
31+
path.Join(dir, "mec"),
32+
path.Join(dir, "mgo"),
33+
}
3634

37-
Uninstall()
35+
Uninstall(dir)
3836

3937
fmt.Println("Install")
4038
currentPath, err := exec.LookPath(os.Args[0])
4139
CheckAndExit(err)
4240
f, err := os.Open(currentPath)
4341
CheckAndExit(err)
4442
defer f.Close()
45-
target, err := os.OpenFile(path.Join(InstallBaseDir, "mmh"), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)
43+
target, err := os.OpenFile(path.Join(dir, "mmh"), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)
4644
CheckAndExit(err)
4745
defer target.Close()
4846

49-
fmt.Printf("Install %s\n", path.Join(InstallBaseDir, "mmh"))
47+
fmt.Printf("Install %s\n", path.Join(dir, "mmh"))
5048
_, err = io.Copy(target, f)
5149
CheckAndExit(err)
5250
for _, bin := range BinPaths {
5351
fmt.Printf("Install %s\n", bin)
54-
err = os.Symlink(path.Join(InstallBaseDir, "mmh"), bin)
52+
err = os.Symlink(path.Join(dir, "mmh"), bin)
5553
CheckAndExit(err)
5654
}
5755
}

pkg/utils/uninstall.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,14 @@ import (
2222
"path"
2323
)
2424

25-
func Uninstall() {
25+
func Uninstall(dir string) {
26+
27+
var BinPaths = []string{
28+
path.Join(dir, "mcp"),
29+
path.Join(dir, "mec"),
30+
path.Join(dir, "mgo"),
31+
}
32+
2633
CheckRoot()
2734

2835
fmt.Println("Uninstall")
@@ -31,6 +38,6 @@ func Uninstall() {
3138
fmt.Printf("Remove %s\n", bin)
3239
os.Remove(bin)
3340
}
34-
fmt.Printf("Remove %s\n", path.Join(InstallBaseDir, "mmh"))
35-
os.Remove(path.Join(InstallBaseDir, "mmh"))
41+
fmt.Printf("Remove %s\n", path.Join(dir, "mmh"))
42+
os.Remove(path.Join(dir, "mmh"))
3643
}

0 commit comments

Comments
 (0)