Skip to content

Commit 72f4028

Browse files
committed
feat: [#576] add package manager functionality
1 parent 2e950ff commit 72f4028

16 files changed

+1808
-0
lines changed

contracts/packages/manager.go

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package packages
2+
3+
import (
4+
"github.com/dave/dst"
5+
"github.com/dave/dst/dstutil"
6+
)
7+
8+
type FileModifier interface {
9+
Apply(dir string) error
10+
}
11+
12+
type Manager interface {
13+
Install(dir string) error
14+
Uninstall(dir string) error
15+
}
16+
17+
type GoNodeMatcher interface {
18+
MatchNode(node dst.Node) bool
19+
MatchCursor(cursor *dstutil.Cursor) bool
20+
}
21+
22+
type GoNodeModifier interface {
23+
Apply(node dst.Node) error
24+
}

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
github.com/charmbracelet/huh v0.6.0
1111
github.com/charmbracelet/huh/spinner v0.0.0-20250213143221-71c9d72e6770
1212
github.com/charmbracelet/lipgloss v1.0.0
13+
github.com/dave/dst v0.27.3
1314
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
1415
github.com/dromara/carbon/v2 v2.5.3
1516
github.com/gabriel-vasile/mimetype v1.4.8

go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV
6161
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
6262
github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0=
6363
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
64+
github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY=
65+
github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc=
66+
github.com/dave/jennifer v1.5.0 h1:HmgPN93bVDpkQyYbqhCHj5QlgvUkvEOzMyEvKLgCRrg=
67+
github.com/dave/jennifer v1.5.0/go.mod h1:4MnyiFIlZS3l5tSDn8VnzE6ffAhYBMB2SZntBsZGUok=
6468
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6569
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6670
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=

mocks/pkgmanager/FileModifier.go

+78
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/pkgmanager/GoNodeMatcher.go

+129
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/pkgmanager/GoNodeModifier.go

+81
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)