Several changes to clients
All checks were successful
/ pre-commit (push) Successful in 1m40s

coller:
- Add FILENAME as positioned argument (fixes #18)
- Add -html argument to show the URL of the webpage

copier:
- Rename -w to -ask-password

both:
- Rename -b to -ask-bearer

Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
Julien Riou 2025-08-28 12:44:36 +02:00
parent 463e2e703b
commit d43c645039
Signed by: jriou
GPG key ID: 9A099EDA51316854
3 changed files with 35 additions and 10 deletions

View file

@ -52,6 +52,10 @@ func handleMain() int {
return internal.RC_ERROR return internal.RC_ERROR
} }
flag.Usage = usage
var fileName string
version := flag.Bool("version", false, "Print version and exit") version := flag.Bool("version", false, "Print version and exit")
quiet := flag.Bool("quiet", false, "Log errors only") quiet := flag.Bool("quiet", false, "Log errors only")
verbose := flag.Bool("verbose", false, "Print more logs") verbose := flag.Bool("verbose", false, "Print more logs")
@ -63,16 +67,24 @@ func handleMain() int {
askPassword := flag.Bool("ask-password", false, "Read password from input") askPassword := flag.Bool("ask-password", false, "Read password from input")
noPassword := flag.Bool("no-password", false, "Allow notes without password") noPassword := flag.Bool("no-password", false, "Allow notes without password")
passwordLength := flag.Int("password-length", 16, "Length of the auto-generated password") passwordLength := flag.Int("password-length", 16, "Length of the auto-generated password")
fileName := flag.String("file", "", "Read content of the note from a file") flag.StringVar(&fileName, "file", "", "Read content of the note from a file")
expiration := flag.Int("expiration", 0, "Number of seconds before expiration") expiration := flag.Int("expiration", 0, "Number of seconds before expiration")
deleteAfterRead := flag.Bool("delete-after-read", false, "Delete the note after the first read") deleteAfterRead := flag.Bool("delete-after-read", false, "Delete the note after the first read")
copier := flag.Bool("copier", false, "Print the copier command to decrypt the note") copier := flag.Bool("copier", false, "Print the copier command to decrypt the note")
html := flag.Bool("html", false, "Print the HTML version of the note")
bearer := flag.String("bearer", os.Getenv("COLLER_BEARER"), "Bearer token") bearer := flag.String("bearer", os.Getenv("COLLER_BEARER"), "Bearer token")
askBearer := flag.Bool("b", false, "Read bearer token from input") askBearer := flag.Bool("ask-bearer", false, "Read bearer token from input")
language := flag.String("language", "", "Language of the note") language := flag.String("language", "", "Language of the note")
flag.Parse() flag.Parse()
if flag.NArg() == 1 {
fileName = flag.Args()[0]
} else if flag.NArg() > 1 {
usage()
return internal.RC_ERROR
}
if *version { if *version {
internal.ShowVersion(AppName, AppVersion, GitCommit, GoVersion) internal.ShowVersion(AppName, AppVersion, GitCommit, GoVersion)
return internal.RC_OK return internal.RC_OK
@ -113,9 +125,9 @@ func handleMain() int {
} }
var content []byte var content []byte
if *fileName != "" { if fileName != "" {
logger.Debug("reading from file", slog.Any("file", *fileName)) logger.Debug("reading from file", slog.Any("file", fileName))
content, err = os.ReadFile(*fileName) content, err = os.ReadFile(fileName)
if err != nil { if err != nil {
return internal.ReturnError(logger, "could not read from file", err) return internal.ReturnError(logger, "could not read from file", err)
} }
@ -233,10 +245,18 @@ func handleMain() int {
if *copier { if *copier {
location = fmt.Sprintf("copier -password %s %s", *password, noteURL) location = fmt.Sprintf("copier -password %s %s", *password, noteURL)
} else { } else {
location = fmt.Sprintf("%s/%s", noteURL, *password) if *html {
location = fmt.Sprintf("%s/%s.html", noteURL, *password)
} else {
location = fmt.Sprintf("%s/%s", noteURL, *password)
}
} }
} else { } else {
location = fmt.Sprintf("%s", noteURL) if *html {
location = fmt.Sprintf("%s.html", noteURL)
} else {
location = fmt.Sprintf("%s", noteURL)
}
} }
logger.Debug("displaying note location") logger.Debug("displaying note location")
@ -249,6 +269,11 @@ func main() {
os.Exit(handleMain()) os.Exit(handleMain())
} }
func usage() {
fmt.Printf("Usage: %s [OPTIONS] [FILENAME]\n", os.Args[0])
flag.PrintDefaults()
}
func CreateConfig() Config { func CreateConfig() Config {
var url string var url string
fmt.Print("Instance URL: ") fmt.Print("Instance URL: ")

View file

@ -29,10 +29,10 @@ func handleMain() int {
verbose := flag.Bool("verbose", false, "Print more logs") verbose := flag.Bool("verbose", false, "Print more logs")
debug := flag.Bool("debug", false, "Print even more logs") debug := flag.Bool("debug", false, "Print even more logs")
password := flag.String("password", os.Getenv("COLLER_PASSWORD"), "Password to decrypt the note") password := flag.String("password", os.Getenv("COLLER_PASSWORD"), "Password to decrypt the note")
askPassword := flag.Bool("w", false, "Read password from input") askPassword := flag.Bool("ask-password", false, "Read password from input")
fileName := flag.String("file", "", "Write content of the note to a file") fileName := flag.String("file", "", "Write content of the note to a file")
bearer := flag.String("bearer", os.Getenv("COLLER_BEARER"), "Bearer token") bearer := flag.String("bearer", os.Getenv("COLLER_BEARER"), "Bearer token")
askBearer := flag.Bool("b", false, "Read bearer token from input") askBearer := flag.Bool("ask-bearer", false, "Read bearer token from input")
flag.Parse() flag.Parse()

View file

@ -38,7 +38,7 @@ func Version(appName, appVersion, gitCommit, goVersion string) string {
version += "-" + gitCommit version += "-" + gitCommit
} }
if goVersion != "" { if goVersion != "" {
version += " (compiled with Go " + goVersion + ")" version += " (compiled with " + goVersion + ")"
} }
return version return version
} }