Skip to content

Commit 5876e6d

Browse files
Vendor clean command
1 parent ee67917 commit 5876e6d

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

cmd/aem/vendor.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ func (c *CLI) vendorCmd() *cobra.Command {
1414
}
1515
cmd.AddCommand(c.vendorListCmd())
1616
cmd.AddCommand(c.vendorPrepareCmd())
17+
cmd.AddCommand(c.vendorCleanCmd())
1718

1819
return cmd
1920
}
@@ -74,3 +75,24 @@ func (c *CLI) vendorPrepareCmd() *cobra.Command {
7475
}
7576
return cmd
7677
}
78+
79+
func (c *CLI) vendorCleanCmd() *cobra.Command {
80+
cmd := &cobra.Command{
81+
Use: "clean",
82+
Short: "Clean vendor tools",
83+
Aliases: []string{"cl"},
84+
Run: func(cmd *cobra.Command, args []string) {
85+
changed, err := c.aem.VendorManager().CleanWithChanged()
86+
if err != nil {
87+
c.Error(err)
88+
return
89+
}
90+
if changed {
91+
c.Changed("vendor tools cleaned")
92+
} else {
93+
c.Ok("vendor tools already cleaned")
94+
}
95+
},
96+
}
97+
return cmd
98+
}

pkg/vendor_manager.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package pkg
22

3+
import "github.com/wttech/aemc/pkg/common/pathx"
4+
35
// VendorManager manages third-party tools like JDK, OakRun, and Vault CLI
46
type VendorManager struct {
57
aem *AEM
@@ -34,7 +36,7 @@ func (vm *VendorManager) PrepareWithChanged(requireLibs bool) (bool, error) {
3436
changed := false
3537

3638
javaChanged, err := vm.javaManager.PrepareWithChanged()
37-
changed = changed || javaChanged
39+
changed = javaChanged
3840
if err != nil {
3941
return changed, err
4042
}
@@ -62,6 +64,17 @@ func (vm *VendorManager) PrepareWithChanged(requireLibs bool) (bool, error) {
6264
return changed, nil
6365
}
6466

67+
func (vm *VendorManager) CleanWithChanged() (bool, error) {
68+
dir := vm.aem.BaseOpts().ToolDir
69+
if !pathx.Exists(dir) {
70+
return false, nil
71+
}
72+
if err := pathx.Delete(dir); err != nil {
73+
return false, err
74+
}
75+
return true, nil
76+
}
77+
6578
func (vm *VendorManager) JavaManager() *JavaManager {
6679
return vm.javaManager
6780
}

0 commit comments

Comments
 (0)