cmd: minor style cleanups (error handling first, then happy path)

This commit is contained in:
Péter Szilágyi 2019-05-31 12:23:46 +03:00
parent 55c5cc6d1c
commit f0684e2c9a
No known key found for this signature in database
GPG key ID: E9AE538CEDF8293D
3 changed files with 20 additions and 15 deletions

View file

@ -64,7 +64,7 @@ var (
utils.KeyStoreDirFlag, utils.KeyStoreDirFlag,
utils.ExternalSignerFlag, utils.ExternalSignerFlag,
utils.NoUSBFlag, utils.NoUSBFlag,
utils.SmartCardFlag, utils.SmartCardDaemonPathFlag,
utils.DashboardEnabledFlag, utils.DashboardEnabledFlag,
utils.DashboardAddrFlag, utils.DashboardAddrFlag,
utils.DashboardPortFlag, utils.DashboardPortFlag,

View file

@ -71,7 +71,7 @@ var AppHelpFlagGroups = []flagGroup{
utils.DataDirFlag, utils.DataDirFlag,
utils.KeyStoreDirFlag, utils.KeyStoreDirFlag,
utils.NoUSBFlag, utils.NoUSBFlag,
utils.SmartCardFlag, utils.SmartCardDaemonPathFlag,
utils.NetworkIdFlag, utils.NetworkIdFlag,
utils.TestnetFlag, utils.TestnetFlag,
utils.RinkebyFlag, utils.RinkebyFlag,

View file

@ -128,9 +128,9 @@ var (
Name: "nousb", Name: "nousb",
Usage: "Disables monitoring for and managing USB hardware wallets", Usage: "Disables monitoring for and managing USB hardware wallets",
} }
SmartCardFlag = cli.StringFlag{ SmartCardDaemonPathFlag = cli.StringFlag{
Name: "pcscdpath", Name: "pcscdpath",
Usage: "Path to the smartcard daemon (pcscd) socket file (unix only, leave empty for platform default)", Usage: "Path to the smartcard daemon (pcscd) socket file",
Value: pcsclite.PCSCDSockName, Value: pcsclite.PCSCDSockName,
} }
NetworkIdFlag = cli.Uint64Flag{ NetworkIdFlag = cli.Uint64Flag{
@ -1151,18 +1151,23 @@ func SetNodeConfig(ctx *cli.Context, cfg *node.Config) {
} }
func setSmartCard(ctx *cli.Context, cfg *node.Config) { func setSmartCard(ctx *cli.Context, cfg *node.Config) {
// Use the platform default unless specified on the command line // Skip enabling smartcards if no path is set
if len(ctx.GlobalString(SmartCardFlag.Name)) > 0 { path := ctx.GlobalString(SmartCardDaemonPathFlag.Name)
if fi, err := os.Stat(ctx.GlobalString(SmartCardFlag.Name)); err == nil { if path == "" {
if fi.Mode()&os.ModeType == os.ModeSocket { return
cfg.SmartCardDaemonPath = ctx.GlobalString(SmartCardFlag.Name)
} else {
log.Error(fmt.Sprintf("%s doesn't seem to be a socket file", ctx.GlobalString(SmartCardFlag.Name)))
}
} else {
log.Error(fmt.Sprintf("%s doesn't exist", ctx.GlobalString(SmartCardFlag.Name)))
}
} }
// Sanity check that the smartcard path is valid
fi, err := os.Stat(path)
if err != nil {
log.Error("Failed to verify smartcard daemon path", "path", path, "err", err)
return
}
if fi.Mode()&os.ModeType != os.ModeSocket {
log.Error("Invalid smartcard daemon path", "path", path, "type", fi.Mode().String())
return
}
// Smartcard daemon path exists and is a socket, enable it
cfg.SmartCardDaemonPath = path
} }
func setDataDir(ctx *cli.Context, cfg *node.Config) { func setDataDir(ctx *cli.Context, cfg *node.Config) {