Skip to content

Commit f4156bc

Browse files
committed
remove custom shell
1 parent 4b66399 commit f4156bc

File tree

3 files changed

+1
-127
lines changed

3 files changed

+1
-127
lines changed

go.mod

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ require (
1919
)
2020

2121
require (
22-
github.com/abiosoft/ishell/v2 v2.0.2
23-
github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db
2422
github.com/caddyserver/certmagic v0.23.0
2523
github.com/charmbracelet/ssh v0.0.0-20250213143314-8712ec3ff3ef
2624
github.com/charmbracelet/wish v1.4.7
@@ -63,7 +61,6 @@ require (
6361
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect
6462
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
6563
github.com/ProtonMail/go-crypto v1.3.0 // indirect
66-
github.com/abiosoft/ishell v2.0.0+incompatible // indirect
6764
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
6865
github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect
6966
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect
@@ -109,7 +106,6 @@ require (
109106
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
110107
github.com/fatih/color v1.18.0 // indirect
111108
github.com/felixge/httpsnoop v1.0.4 // indirect
112-
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
113109
github.com/getsops/gopgagent v0.0.0-20241224165529-7044f28e491e // indirect
114110
github.com/go-jose/go-jose/v4 v4.1.1 // indirect
115111
github.com/go-logfmt/logfmt v0.6.0 // indirect

go.sum

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,6 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEV
6767
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
6868
github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw=
6969
github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE=
70-
github.com/abiosoft/ishell v2.0.0+incompatible h1:zpwIuEHc37EzrsIYah3cpevrIc8Oma7oZPxr03tlmmw=
71-
github.com/abiosoft/ishell v2.0.0+incompatible/go.mod h1:HQR9AqF2R3P4XXpMpI0NAzgHf/aS6+zVXRj14cVk9qg=
72-
github.com/abiosoft/ishell/v2 v2.0.2 h1:5qVfGiQISaYM8TkbBl7RFO6MddABoXpATrsFbVI+SNo=
73-
github.com/abiosoft/ishell/v2 v2.0.2/go.mod h1:E4oTCXfo6QjoCart0QYa5m9w4S+deXs/P/9jA77A9Bs=
74-
github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db h1:CjPUSXOiYptLbTdr1RceuZgSFDQ7U15ITERUGrUORx8=
75-
github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db/go.mod h1:rB3B4rKii8V21ydCbIzH5hZiCQE7f5E9SzUb/ZZx530=
7670
github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78=
7771
github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ=
7872
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
@@ -155,10 +149,6 @@ github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQ
155149
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
156150
github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY=
157151
github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo=
158-
github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
159-
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
160-
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=
161-
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
162152
github.com/cli/go-gh/v2 v2.12.1 h1:SVt1/afj5FRAythyMV3WJKaUfDNsxXTIe7arZbwTWKA=
163153
github.com/cli/go-gh/v2 v2.12.1/go.mod h1:+5aXmEOJsH9fc9mBHfincDwnS02j2AIA/DsTH0Bk5uw=
164154
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
@@ -194,13 +184,10 @@ github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfU
194184
github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
195185
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
196186
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
197-
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
198187
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
199188
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
200189
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
201190
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
202-
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BMXYYRWTLOJKlh+lOBt6nUQgXAfB7oVIQt5cNreqSLI=
203-
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:rZfgFAXFS/z/lEd6LJmf9HVZ1LkgYiHx5pHhV5DR16M=
204191
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
205192
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
206193
github.com/getsops/gopgagent v0.0.0-20241224165529-7044f28e491e h1:y/1nzrdF+RPds4lfoEpNhjfmzlgZtPqyO3jMzrqDQws=
@@ -310,10 +297,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69
310297
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
311298
github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ=
312299
github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
313-
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
314300
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
315301
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
316-
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
317302
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
318303
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
319304
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
@@ -493,8 +478,6 @@ golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
493478
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
494479
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
495480
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
496-
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
497-
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
498481
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
499482
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
500483
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

internal/cmd/root.go

Lines changed: 1 addition & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88
"path/filepath"
99
"strings"
1010

11-
"github.com/abiosoft/ishell/v2"
12-
"github.com/abiosoft/readline"
1311
"github.com/adrg/xdg"
1412
"github.com/knadh/koanf/providers/confmap"
1513
"github.com/knadh/koanf/providers/env"
@@ -20,7 +18,6 @@ import (
2018
"github.com/pomdtr/smallweb/internal/app"
2119
"github.com/pomdtr/smallweb/internal/build"
2220
"github.com/pomdtr/smallweb/internal/utils"
23-
"github.com/pomdtr/smallweb/internal/worker"
2421
"github.com/spf13/cobra"
2522
)
2623

@@ -100,109 +97,7 @@ func NewCmdRoot() *cobra.Command {
10097
Args: cobra.ArbitraryArgs,
10198
RunE: func(cmd *cobra.Command, args []string) error {
10299
if len(args) == 0 {
103-
shell := ishell.NewWithConfig(&readline.Config{
104-
Prompt: "> ",
105-
ForceUseInteractive: true,
106-
FuncGetWidth: func() int {
107-
return 80 // Default terminal width
108-
},
109-
Stdin: fakeReadCloser{cmd.InOrStdin()},
110-
Stdout: cmd.OutOrStdout(),
111-
Stderr: cmd.OutOrStdout(),
112-
})
113-
114-
shell.AutoHelp(false)
115-
116-
appnames, err := app.LookupApps(k.String("dir"))
117-
if err != nil {
118-
return fmt.Errorf("failed to lookup apps: %w", err)
119-
}
120-
121-
shell.DeleteCmd("exit")
122-
shell.DeleteCmd("help")
123-
shell.DeleteCmd("clear")
124-
125-
shell.AddCmd(&ishell.Cmd{
126-
Name: "/help",
127-
Help: "display help",
128-
Func: func(c *ishell.Context) {
129-
c.Println(c.HelpText())
130-
},
131-
})
132-
133-
shell.AddCmd(&ishell.Cmd{
134-
Name: "/clear",
135-
Help: "clear the screen",
136-
Func: func(c *ishell.Context) {
137-
err := c.ClearScreen()
138-
if err != nil {
139-
c.Err(err)
140-
}
141-
},
142-
})
143-
144-
shell.AddCmd(&ishell.Cmd{
145-
Name: "/exit",
146-
Help: "exit the program",
147-
Func: func(c *ishell.Context) {
148-
c.Stop()
149-
},
150-
})
151-
152-
shell.AddCmd(&ishell.Cmd{
153-
Name: "/list",
154-
Aliases: []string{"/ls"},
155-
Help: "list available apps",
156-
Func: func(c *ishell.Context) {
157-
if len(appnames) == 0 {
158-
cmd.PrintErrln("No apps found.")
159-
return
160-
}
161-
162-
for _, appname := range appnames {
163-
cmd.Println(appname)
164-
}
165-
},
166-
})
167-
168-
shell.NotFound(func(c *ishell.Context) {
169-
c.Err(fmt.Errorf("command not found: %s", c.Args[0]))
170-
})
171-
172-
for _, appname := range appnames {
173-
shell.AddCmd(&ishell.Cmd{
174-
Name: appname,
175-
Help: fmt.Sprintf("run %s app", appname),
176-
Func: func(c *ishell.Context) {
177-
a, err := app.LoadApp(appname, k.String("dir"), k.String("domain"))
178-
if err != nil {
179-
c.Err(fmt.Errorf("failed to load app %s: %w", appname, err))
180-
return
181-
}
182-
183-
wk := worker.NewWorker(a, nil)
184-
185-
command, err := wk.Command(cmd.Context(), c.Args)
186-
if err != nil {
187-
c.Err(fmt.Errorf("failed to create command for app %s: %w", appname, err))
188-
return
189-
}
190-
191-
c.Print()
192-
193-
command.Stdout = cmd.OutOrStdout()
194-
command.Stderr = cmd.OutOrStdout()
195-
196-
command.Run()
197-
},
198-
})
199-
200-
}
201-
202-
shell.Printf("Smallweb %s\n", build.Version)
203-
shell.Printf("use /help for a list of commands.\n")
204-
shell.Run()
205-
return nil
100+
return cmd.Help()
206101
}
207102

208103
for _, pluginDir := range []string{

0 commit comments

Comments
 (0)