From 6c2a3d8bcf045d9fe8b3be3e6022b4d46a3f11da Mon Sep 17 00:00:00 2001 From: Jonathan Moody <103143855+moodyjon@users.noreply.github.com> Date: Tue, 19 Apr 2022 15:31:00 -0400 Subject: [PATCH] [lbry] config: Embed sample-lbcd.conf contents at build time. Use embedded config if the sample-lbcd.conf is not found at runtime. --- config.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/config.go b/config.go index 85325afc..b87fafb9 100644 --- a/config.go +++ b/config.go @@ -7,6 +7,7 @@ package main import ( "bufio" "crypto/rand" + _ "embed" "encoding/base64" "encoding/hex" "errors" @@ -79,6 +80,9 @@ var ( defaultLogDir = filepath.Join(defaultHomeDir, defaultLogDirname) ) +//go:embed sample-lbcd.conf +var sampleConfig string + // runServiceCommand is only set to a real function on Windows. It is used // to parse and execute service commands specified via the -s flag. var runServiceCommand func(string) error @@ -1178,11 +1182,15 @@ func createDefaultConfigFile(destinationPath string) error { } generatedRPCPass := base64.StdEncoding.EncodeToString(randomBytes) + var reader *bufio.Reader src, err := os.Open(sampleConfigPath) if err != nil { - return err + // Fall back to sample config embedded at build time. + reader = bufio.NewReader(strings.NewReader(sampleConfig)) + } else { + reader = bufio.NewReader(src) + defer src.Close() } - defer src.Close() dest, err := os.OpenFile(destinationPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600) @@ -1193,7 +1201,6 @@ func createDefaultConfigFile(destinationPath string) error { // We copy every line from the sample config file to the destination, // only replacing the two lines for rpcuser and rpcpass - reader := bufio.NewReader(src) for err != io.EOF { var line string line, err = reader.ReadString('\n')