lncli: use CleanAndExpandPath from lncfg

This commit is contained in:
Oliver Gugger 2020-09-04 16:06:11 +02:00
parent 10f73b3b91
commit a2721a15a8
No known key found for this signature in database
GPG Key ID: 8E4256593F177720
2 changed files with 6 additions and 32 deletions

@ -11,6 +11,7 @@ import (
"strings" "strings"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
"github.com/lightningnetwork/lnd/lncfg"
"github.com/lightningnetwork/lnd/lnrpc" "github.com/lightningnetwork/lnd/lnrpc"
"github.com/lightningnetwork/lnd/macaroons" "github.com/lightningnetwork/lnd/macaroons"
"github.com/urfave/cli" "github.com/urfave/cli"
@ -93,7 +94,7 @@ func bakeMacaroon(ctx *cli.Context) error {
) )
if ctx.String("save_to") != "" { if ctx.String("save_to") != "" {
savePath = cleanAndExpandPath(ctx.String("save_to")) savePath = lncfg.CleanAndExpandPath(ctx.String("save_to"))
} }
if ctx.IsSet("timeout") { if ctx.IsSet("timeout") {
@ -349,7 +350,7 @@ func printMacaroon(ctx *cli.Context) error {
) )
switch { switch {
case ctx.IsSet("macaroon_file"): case ctx.IsSet("macaroon_file"):
macPath := cleanAndExpandPath(ctx.String("macaroon_file")) macPath := lncfg.CleanAndExpandPath(ctx.String("macaroon_file"))
// Load the specified macaroon file. // Load the specified macaroon file.
macBytes, err = ioutil.ReadFile(macPath) macBytes, err = ioutil.ReadFile(macPath)

@ -8,7 +8,6 @@ import (
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"os/user"
"path/filepath" "path/filepath"
"strings" "strings"
@ -171,13 +170,13 @@ func extractPathArgs(ctx *cli.Context) (string, string, error) {
// properly read the macaroons (if needed) and also the cert. This will // properly read the macaroons (if needed) and also the cert. This will
// either be the default, or will have been overwritten by the end // either be the default, or will have been overwritten by the end
// user. // user.
lndDir := cleanAndExpandPath(ctx.GlobalString("lnddir")) lndDir := lncfg.CleanAndExpandPath(ctx.GlobalString("lnddir"))
// If the macaroon path as been manually provided, then we'll only // If the macaroon path as been manually provided, then we'll only
// target the specified file. // target the specified file.
var macPath string var macPath string
if ctx.GlobalString("macaroonpath") != "" { if ctx.GlobalString("macaroonpath") != "" {
macPath = cleanAndExpandPath(ctx.GlobalString("macaroonpath")) macPath = lncfg.CleanAndExpandPath(ctx.GlobalString("macaroonpath"))
} else { } else {
// Otherwise, we'll go into the path: // Otherwise, we'll go into the path:
// lnddir/data/chain/<chain>/<network> in order to fetch the // lnddir/data/chain/<chain>/<network> in order to fetch the
@ -188,7 +187,7 @@ func extractPathArgs(ctx *cli.Context) (string, string, error) {
) )
} }
tlsCertPath := cleanAndExpandPath(ctx.GlobalString("tlscertpath")) tlsCertPath := lncfg.CleanAndExpandPath(ctx.GlobalString("tlscertpath"))
// If a custom lnd directory was set, we'll also check if custom paths // If a custom lnd directory was set, we'll also check if custom paths
// for the TLS cert and macaroon file were set as well. If not, we'll // for the TLS cert and macaroon file were set as well. If not, we'll
@ -322,29 +321,3 @@ func main() {
fatal(err) fatal(err)
} }
} }
// cleanAndExpandPath expands environment variables and leading ~ in the
// passed path, cleans the result, and returns it.
// This function is taken from https://github.com/btcsuite/btcd
func cleanAndExpandPath(path string) string {
if path == "" {
return ""
}
// Expand initial ~ to OS specific home directory.
if strings.HasPrefix(path, "~") {
var homeDir string
user, err := user.Current()
if err == nil {
homeDir = user.HomeDir
} else {
homeDir = os.Getenv("HOME")
}
path = strings.Replace(path, "~", homeDir, 1)
}
// NOTE: The os.ExpandEnv doesn't work with Windows-style %VARIABLE%,
// but the variables can still be expanded via POSIX-style $VARIABLE.
return filepath.Clean(os.ExpandEnv(path))
}