~emersion/hut-dev

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
1

[PATCH] hut init: move file/folder opening earlier

Details
Message ID
<20230831233122.77703-1-jackson@jacksonchen666.com>
DKIM signature
missing
Download raw message
Patch: +12 -12
So that hut init doesn't complain too late, which is when the token has
been verified to be functional.
---
I found out that hut init wouldn't save the token I gave it, because a
config file already exists. It complained way too late, and I think it
should warn earlier.

Could be better handled by replacing the token, because the tokens expire
after a year anyways. Although that might be better as a separate command,
or just left as manual config editing.

 config.go | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/config.go b/config.go
index 51023ac..693e439 100644
--- a/config.go
+++ b/config.go
@@ -177,6 +177,18 @@ func newInitCommand() *cobra.Command {
			instance = "sr.ht"
		}

		if err := os.MkdirAll(filepath.Dir(filename), 0755); err != nil {
			log.Fatalf("failed to create config file parent directory: %v", err)
		}

		f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0600)
		if os.IsExist(err) {
			log.Fatalf("config file %q already exists (delete it if you want to overwrite it)", filename)
		} else if err != nil {
			log.Fatalf("failed to create config file: %v", err)
		}
		defer f.Close()

		baseURL := "https://meta." + instance
		fmt.Printf("Generate a new OAuth2 access token at:\n")
		fmt.Printf("%s/oauth2/personal-token\n", baseURL)
@@ -199,18 +211,6 @@ func newInitCommand() *cobra.Command {
			log.Fatalf("failed to check OAuth2 token: %v", err)
		}

		if err := os.MkdirAll(filepath.Dir(filename), 0755); err != nil {
			log.Fatalf("failed to create config file parent directory: %v", err)
		}

		f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0600)
		if os.IsExist(err) {
			log.Fatalf("config file %q already exists (delete it if you want to overwrite it)", filename)
		} else if err != nil {
			log.Fatalf("failed to create config file: %v", err)
		}
		defer f.Close()

		if _, err := f.WriteString(config); err != nil {
			log.Fatalf("failed to write config file: %v", err)
		}
-- 
2.42.0
Details
Message ID
<xPzfXsxgYhpKLg0ufQTtiKprhoeoBtf1MiczUBTToIaXxrhHZem3gpJop7RRsAyLL4lK76jm_uT1W_wbQo9Gj5nl8nVz4LbJgLfsE7HjgTU=@emersion.fr>
In-Reply-To
<20230831233122.77703-1-jackson@jacksonchen666.com> (view parent)
DKIM signature
missing
Download raw message
Hm, this will create an empty file on failure I believe, which is not
great… Maybe we can add an early os.Stat check instead?
Reply to thread Export thread (mbox)