mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-11 05:06:51 +00:00
Other: Add v2 to module name
This commit is contained in:
@ -19,20 +19,18 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"github.com/ProtonMail/proton-bridge/internal/config/settings"
|
||||
"github.com/ProtonMail/proton-bridge/internal/events"
|
||||
"github.com/ProtonMail/proton-bridge/internal/frontend/types"
|
||||
"github.com/ProtonMail/proton-bridge/internal/locations"
|
||||
"github.com/ProtonMail/proton-bridge/internal/updater"
|
||||
"github.com/ProtonMail/proton-bridge/pkg/listener"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/config/settings"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/events"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/types"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/locations"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/updater"
|
||||
"github.com/ProtonMail/proton-bridge/v2/pkg/listener"
|
||||
|
||||
"github.com/abiosoft/ishell"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
log = logrus.WithField("pkg", "frontend/cli") //nolint:gochecknoglobals
|
||||
)
|
||||
var log = logrus.WithField("pkg", "frontend/cli") //nolint:gochecknoglobals
|
||||
|
||||
type frontendCLI struct {
|
||||
*ishell.Shell
|
||||
@ -70,21 +68,25 @@ func New( //nolint:funlen
|
||||
}
|
||||
|
||||
// Clear commands.
|
||||
clearCmd := &ishell.Cmd{Name: "clear",
|
||||
clearCmd := &ishell.Cmd{
|
||||
Name: "clear",
|
||||
Help: "remove stored accounts and preferences. (alias: cl)",
|
||||
Aliases: []string{"cl"},
|
||||
}
|
||||
clearCmd.AddCmd(&ishell.Cmd{Name: "cache",
|
||||
clearCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "cache",
|
||||
Help: "remove stored preferences for accounts (aliases: c, prefs, preferences)",
|
||||
Aliases: []string{"c", "prefs", "preferences"},
|
||||
Func: fe.deleteCache,
|
||||
})
|
||||
clearCmd.AddCmd(&ishell.Cmd{Name: "accounts",
|
||||
clearCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "accounts",
|
||||
Help: "remove all accounts from keychain. (aliases: a, k, keychain)",
|
||||
Aliases: []string{"a", "k", "keychain"},
|
||||
Func: fe.deleteAccounts,
|
||||
})
|
||||
clearCmd.AddCmd(&ishell.Cmd{Name: "everything",
|
||||
clearCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "everything",
|
||||
Help: "remove everything",
|
||||
Aliases: []string{"a", "k", "keychain"},
|
||||
Func: fe.deleteEverything,
|
||||
@ -92,22 +94,26 @@ func New( //nolint:funlen
|
||||
fe.AddCmd(clearCmd)
|
||||
|
||||
// Change commands.
|
||||
changeCmd := &ishell.Cmd{Name: "change",
|
||||
changeCmd := &ishell.Cmd{
|
||||
Name: "change",
|
||||
Help: "change server or account settings (aliases: ch, switch)",
|
||||
Aliases: []string{"ch", "switch"},
|
||||
}
|
||||
changeCmd.AddCmd(&ishell.Cmd{Name: "mode",
|
||||
changeCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "mode",
|
||||
Help: "switch between combined addresses and split addresses mode for account. Use index or account name as parameter. (alias: m)",
|
||||
Aliases: []string{"m"},
|
||||
Func: fe.changeMode,
|
||||
Completer: fe.completeUsernames,
|
||||
})
|
||||
changeCmd.AddCmd(&ishell.Cmd{Name: "port",
|
||||
changeCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "port",
|
||||
Help: "change port numbers of IMAP and SMTP servers. (alias: p)",
|
||||
Aliases: []string{"p"},
|
||||
Func: fe.changePort,
|
||||
})
|
||||
changeCmd.AddCmd(&ishell.Cmd{Name: "smtp-security",
|
||||
changeCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "smtp-security",
|
||||
Help: "change port numbers of IMAP and SMTP servers.(alias: ssl, starttls)",
|
||||
Aliases: []string{"ssl", "starttls"},
|
||||
Func: fe.changeSMTPSecurity,
|
||||
@ -115,113 +121,136 @@ func New( //nolint:funlen
|
||||
fe.AddCmd(changeCmd)
|
||||
|
||||
// DoH commands.
|
||||
dohCmd := &ishell.Cmd{Name: "proxy",
|
||||
dohCmd := &ishell.Cmd{
|
||||
Name: "proxy",
|
||||
Help: "allow or disallow bridge to securely connect to proton via a third party when it is being blocked",
|
||||
}
|
||||
dohCmd.AddCmd(&ishell.Cmd{Name: "allow",
|
||||
dohCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "allow",
|
||||
Help: "allow bridge to securely connect to proton via a third party when it is being blocked",
|
||||
Func: fe.allowProxy,
|
||||
})
|
||||
dohCmd.AddCmd(&ishell.Cmd{Name: "disallow",
|
||||
dohCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "disallow",
|
||||
Help: "disallow bridge to securely connect to proton via a third party when it is being blocked",
|
||||
Func: fe.disallowProxy,
|
||||
})
|
||||
fe.AddCmd(dohCmd)
|
||||
|
||||
// Cache-On-Disk commands.
|
||||
codCmd := &ishell.Cmd{Name: "local-cache",
|
||||
codCmd := &ishell.Cmd{
|
||||
Name: "local-cache",
|
||||
Help: "manage the local encrypted message cache",
|
||||
}
|
||||
codCmd.AddCmd(&ishell.Cmd{Name: "enable",
|
||||
codCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "enable",
|
||||
Help: "enable the local cache",
|
||||
Func: fe.enableCacheOnDisk,
|
||||
})
|
||||
codCmd.AddCmd(&ishell.Cmd{Name: "disable",
|
||||
codCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "disable",
|
||||
Help: "disable the local cache",
|
||||
Func: fe.disableCacheOnDisk,
|
||||
})
|
||||
codCmd.AddCmd(&ishell.Cmd{Name: "change-location",
|
||||
codCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "change-location",
|
||||
Help: "change the location of the local cache",
|
||||
Func: fe.setCacheOnDiskLocation,
|
||||
})
|
||||
fe.AddCmd(codCmd)
|
||||
|
||||
// Updates commands.
|
||||
updatesCmd := &ishell.Cmd{Name: "updates",
|
||||
updatesCmd := &ishell.Cmd{
|
||||
Name: "updates",
|
||||
Help: "manage bridge updates",
|
||||
}
|
||||
updatesCmd.AddCmd(&ishell.Cmd{Name: "check",
|
||||
updatesCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "check",
|
||||
Help: "check for Bridge updates",
|
||||
Func: fe.checkUpdates,
|
||||
})
|
||||
autoUpdatesCmd := &ishell.Cmd{Name: "autoupdates",
|
||||
autoUpdatesCmd := &ishell.Cmd{
|
||||
Name: "autoupdates",
|
||||
Help: "manage bridge updates",
|
||||
}
|
||||
updatesCmd.AddCmd(autoUpdatesCmd)
|
||||
autoUpdatesCmd.AddCmd(&ishell.Cmd{Name: "enable",
|
||||
autoUpdatesCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "enable",
|
||||
Help: "automatically keep bridge up to date",
|
||||
Func: fe.enableAutoUpdates,
|
||||
})
|
||||
autoUpdatesCmd.AddCmd(&ishell.Cmd{Name: "disable",
|
||||
autoUpdatesCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "disable",
|
||||
Help: "require bridge to be manually updated",
|
||||
Func: fe.disableAutoUpdates,
|
||||
})
|
||||
updatesChannelCmd := &ishell.Cmd{Name: "channel",
|
||||
updatesChannelCmd := &ishell.Cmd{
|
||||
Name: "channel",
|
||||
Help: "switch updates channel",
|
||||
}
|
||||
updatesCmd.AddCmd(updatesChannelCmd)
|
||||
updatesChannelCmd.AddCmd(&ishell.Cmd{Name: "early",
|
||||
updatesChannelCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "early",
|
||||
Help: "switch to the early-access updates channel",
|
||||
Func: fe.selectEarlyChannel,
|
||||
})
|
||||
updatesChannelCmd.AddCmd(&ishell.Cmd{Name: "stable",
|
||||
updatesChannelCmd.AddCmd(&ishell.Cmd{
|
||||
Name: "stable",
|
||||
Help: "switch to the stable updates channel",
|
||||
Func: fe.selectStableChannel,
|
||||
})
|
||||
fe.AddCmd(updatesCmd)
|
||||
|
||||
// Print info commands.
|
||||
fe.AddCmd(&ishell.Cmd{Name: "log-dir",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "log-dir",
|
||||
Help: "print path to directory with logs. (aliases: log, logs)",
|
||||
Aliases: []string{"log", "logs"},
|
||||
Func: fe.printLogDir,
|
||||
})
|
||||
fe.AddCmd(&ishell.Cmd{Name: "manual",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "manual",
|
||||
Help: "print URL with instructions. (alias: man)",
|
||||
Aliases: []string{"man"},
|
||||
Func: fe.printManual,
|
||||
})
|
||||
|
||||
fe.AddCmd(&ishell.Cmd{Name: "credits",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "credits",
|
||||
Help: "print used resources.",
|
||||
Func: fe.printCredits,
|
||||
})
|
||||
|
||||
// Account commands.
|
||||
fe.AddCmd(&ishell.Cmd{Name: "list",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "list",
|
||||
Help: "print the list of accounts. (aliases: l, ls)",
|
||||
Func: fe.noAccountWrapper(fe.listAccounts),
|
||||
Aliases: []string{"l", "ls"},
|
||||
})
|
||||
fe.AddCmd(&ishell.Cmd{Name: "info",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "info",
|
||||
Help: "print the configuration for account. Use index or account name as parameter. (alias: i)",
|
||||
Func: fe.noAccountWrapper(fe.showAccountInfo),
|
||||
Completer: fe.completeUsernames,
|
||||
Aliases: []string{"i"},
|
||||
})
|
||||
fe.AddCmd(&ishell.Cmd{Name: "login",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "login",
|
||||
Help: "login procedure to add or connect account. Optionally use index or account as parameter. (aliases: a, add, con, connect)",
|
||||
Func: fe.loginAccount,
|
||||
Aliases: []string{"add", "a", "con", "connect"},
|
||||
Completer: fe.completeUsernames,
|
||||
})
|
||||
fe.AddCmd(&ishell.Cmd{Name: "logout",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "logout",
|
||||
Help: "disconnect the account. Use index or account name as parameter. (aliases: d, disconnect)",
|
||||
Func: fe.noAccountWrapper(fe.logoutAccount),
|
||||
Aliases: []string{"d", "disconnect"},
|
||||
Completer: fe.completeUsernames,
|
||||
})
|
||||
fe.AddCmd(&ishell.Cmd{Name: "delete",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "delete",
|
||||
Help: "remove the account from keychain. Use index or account name as parameter. (aliases: del, rm, remove)",
|
||||
Func: fe.noAccountWrapper(fe.deleteAccount),
|
||||
Aliases: []string{"del", "rm", "remove"},
|
||||
@ -229,7 +258,8 @@ func New( //nolint:funlen
|
||||
})
|
||||
|
||||
// System commands.
|
||||
fe.AddCmd(&ishell.Cmd{Name: "restart",
|
||||
fe.AddCmd(&ishell.Cmd{
|
||||
Name: "restart",
|
||||
Help: "restart the bridge.",
|
||||
Func: fe.restart,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user