refactor(cli)!: remove reset-password from slim binary (#9520)

This is an alternative approach to #9519 and removes 2 MB instead of 1
MB (1.2 MB accounted for by embedded migration SQL files).

Combined with #9481, #9506, #9508, #9517, a total of 5 MB is removed.

Ref: #9380
This commit is contained in:
Mathias Fredriksson 2023-09-04 19:38:53 +03:00 committed by GitHub
parent ad23d33f28
commit d2115941b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 41 additions and 32 deletions

View File

@ -1,3 +1,5 @@
//go:build !slim
package cli
import (

23
cli/resetpassword_slim.go Normal file
View File

@ -0,0 +1,23 @@
//go:build slim
package cli
import (
"github.com/coder/coder/v2/cli/clibase"
)
func (*RootCmd) resetPassword() *clibase.Cmd {
root := &clibase.Cmd{
Use: "reset-password <username>",
Short: "Directly connect to the database to reset a user's password",
// We accept RawArgs so all commands and flags are accepted.
RawArgs: true,
Hidden: true,
Handler: func(inv *clibase.Invocation) error {
SlimUnsupported(inv.Stderr, "reset-password")
return nil
},
}
return root
}

View File

@ -1019,3 +1019,14 @@ func (p *prettyErrorFormatter) printf(style lipgloss.Style, format string, a ...
),
)
}
//nolint:unused
func SlimUnsupported(w io.Writer, cmd string) {
_, _ = fmt.Fprintf(w, "You are using a 'slim' build of Coder, which does not support the %s subcommand.\n", cliui.DefaultStyles.Code.Render(cmd))
_, _ = fmt.Fprintln(w, "")
_, _ = fmt.Fprintln(w, "Please use a build of Coder from GitHub releases:")
_, _ = fmt.Fprintln(w, " https://github.com/coder/coder/releases")
//nolint:revive
os.Exit(1)
}

View File

@ -3,12 +3,7 @@
package cli
import (
"fmt"
"io"
"os"
"github.com/coder/coder/v2/cli/clibase"
"github.com/coder/coder/v2/cli/cliui"
)
func (r *RootCmd) Server(_ func()) *clibase.Cmd {
@ -19,18 +14,10 @@ func (r *RootCmd) Server(_ func()) *clibase.Cmd {
RawArgs: true,
Hidden: true,
Handler: func(inv *clibase.Invocation) error {
serverUnsupported(inv.Stderr)
SlimUnsupported(inv.Stderr, "server")
return nil
},
}
return root
}
func serverUnsupported(w io.Writer) {
_, _ = fmt.Fprintf(w, "You are using a 'slim' build of Coder, which does not support the %s subcommand.\n", cliui.DefaultStyles.Code.Render("server"))
_, _ = fmt.Fprintln(w, "")
_, _ = fmt.Fprintln(w, "Please use a build of Coder from GitHub releases:")
_, _ = fmt.Fprintln(w, " https://github.com/coder/coder/releases")
os.Exit(1)
}

View File

@ -3,6 +3,7 @@
package cli
import (
agplcli "github.com/coder/coder/v2/cli"
"github.com/coder/coder/v2/cli/clibase"
)
@ -14,7 +15,7 @@ func (r *RootCmd) provisionerDaemons() *clibase.Cmd {
RawArgs: true,
Hidden: true,
Handler: func(inv *clibase.Invocation) error {
slimUnsupported(inv.Stderr, "coder provisionerd")
agplcli.SlimUnsupported(inv.Stderr, "provisionerd")
return nil
},
}

View File

@ -3,6 +3,7 @@
package cli
import (
agplcli "github.com/coder/coder/v2/cli"
"github.com/coder/coder/v2/cli/clibase"
)
@ -15,7 +16,7 @@ func (r *RootCmd) proxyServer() *clibase.Cmd {
RawArgs: true,
Hidden: true,
Handler: func(inv *clibase.Invocation) error {
slimUnsupported(inv.Stderr, "workspace-proxy server")
agplcli.SlimUnsupported(inv.Stderr, "workspace-proxy server")
return nil
},
}

View File

@ -1,13 +1,8 @@
package cli
import (
"fmt"
"io"
"os"
"github.com/coder/coder/v2/cli"
"github.com/coder/coder/v2/cli/clibase"
"github.com/coder/coder/v2/cli/cliui"
)
type RootCmd struct {
@ -29,14 +24,3 @@ func (r *RootCmd) EnterpriseSubcommands() []*clibase.Cmd {
all := append(r.Core(), r.enterpriseOnly()...)
return all
}
//nolint:unused
func slimUnsupported(w io.Writer, cmd string) {
_, _ = fmt.Fprintf(w, "You are using a 'slim' build of Coder, which does not support the %s subcommand.\n", cliui.DefaultStyles.Code.Render(cmd))
_, _ = fmt.Fprintln(w, "")
_, _ = fmt.Fprintln(w, "Please use a build of Coder from GitHub releases:")
_, _ = fmt.Fprintln(w, " https://github.com/coder/coder/releases")
//nolint:revive
os.Exit(1)
}