commit a13f68c2003af6a33c6e039f5804e99274cdad8e
parent 228a58526dcdb6863021e10109dafb411b5726d4
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Fri, 20 Mar 2026 14:37:59 +0100
rename http service binary to fit taler naming conventions, start improving CLI and man docs
Diffstat:
7 files changed, 49 insertions(+), 20 deletions(-)
diff --git a/Makefile.in b/Makefile.in
@@ -6,7 +6,7 @@ TALER_DIRECTORY_CONFDIR=${sysconfdir}/taler-directory
GITVER=`git describe --tags | sed 's/v//'`
server:
- ${GO} build -o taler-directory -ldflags "-X main.version=${VERSION} -X main.taldirdatahome=${TALER_DIRECTORY_HOME} -X main.taldirconfdir=${TALER_DIRECTORY_CONFDIR}" ./cmd/taldir-server
+ ${GO} build -o taler-directory-httpd -ldflags "-X main.version=${VERSION} -X main.taldirdatahome=${TALER_DIRECTORY_HOME} -X main.taldirconfdir=${TALER_DIRECTORY_CONFDIR}" ./cmd/taldir-server
tools:
${GO} build -o taler-directory-cli -ldflags "-X main.version=${VERSION} -X main.taldirdatahome=${TALER_DIRECTORY_HOME} -X main.taldirconfdir=${TALER_DIRECTORY_CONFDIR}" ./cmd/taldir-cli
@@ -17,7 +17,7 @@ tools:
install: server tools
-mkdir -p ${DESTDIR}${bindir}
-mkdir -p ${DESTDIR}${TALER_DIRECTORY_HOME}
- install ./taler-directory ${DESTDIR}${bindir}
+ install ./taler-directory-httpd ${DESTDIR}${bindir}
install ./taler-directory-cli ${DESTDIR}${bindir}
install ./taler-directory-config ${DESTDIR}${bindir}
install ./taler-directory-dbinit ${DESTDIR}${bindir}
@@ -29,7 +29,9 @@ install: server tools
chmod +x scripts/validators/*
cp scripts/validators/* ${DESTDIR}${bindir}
-mkdir -p ${DESTDIR}${mandir}/man1
- cp doc/man/taler-directory.1 ${DESTDIR}${mandir}/man1/
+ cp doc/man/taler-directory-cli.1 ${DESTDIR}${mandir}/man1/
+ cp doc/man/taler-directory-config.1 ${DESTDIR}${mandir}/man1/
+ cp doc/man/taler-directory-httpd.1 ${DESTDIR}${mandir}/man1/
cp doc/man/taler-directory-dbinit.1 ${DESTDIR}${mandir}/man1/
cp taldir.conf.example ${DESTDIR}${TALER_DIRECTORY_HOME}
diff --git a/README.md b/README.md
@@ -14,7 +14,7 @@ $ make && make install
(You may have to set your $PATH to include the go/bin folder accordingly)
$ cp config/taldir-example.conf taldir.conf
(Edit taldir.conf to fit your needs)
-$ ./taldir-server
+$ ./taler-directory-httpd
```
# Test
diff --git a/cmd/taldir-cli/main.go b/cmd/taldir-cli/main.go
@@ -33,7 +33,7 @@ import (
// Hashes the alias with its type in a prefix-free fashion
// SHA512(len(atype||alias)||atype||alias)
-func HashAlias(atype string, alias string) []byte {
+func hashAlias(atype string, alias string) []byte {
h := sha512.New()
b := make([]byte, 4)
binary.BigEndian.PutUint32(b, uint32(len(atype)+len(alias)))
@@ -45,9 +45,9 @@ func HashAlias(atype string, alias string) []byte {
// Generates a link from a challenge and alias
func generateLink(host string, alias string, atype string, challenge string) string {
- h_alias := HashAlias(atype, alias)
- h_alias_s := util.Base32CrockfordEncode(h_alias)
- return host + "/register/" + url.QueryEscape(h_alias_s) + "/" + url.QueryEscape(challenge) + "?alias=" + url.QueryEscape(alias)
+ hAlias := hashAlias(atype, alias)
+ hAliasEnc := util.Base32CrockfordEncode(hAlias)
+ return host + "/register/" + url.QueryEscape(hAliasEnc) + "/" + url.QueryEscape(challenge) + "?alias=" + url.QueryEscape(alias)
}
func main() {
diff --git a/cmd/taldir-config/main.go b/cmd/taldir-config/main.go
@@ -21,8 +21,10 @@ package main
import (
"flag"
"fmt"
+ "log"
"os"
"path"
+ "path/filepath"
"rsc.io/getopt"
@@ -88,25 +90,33 @@ func main() {
getopt.Alias("c", "config")
var helpFlag = flag.Bool("h", false, "Print help")
getopt.Alias("h", "help")
+ var versionFlag = flag.Bool("v", false, "Print version")
+ getopt.Alias("v", "version")
getopt.Parse()
if *helpFlag {
printHelp()
return
}
+ if *versionFlag {
+ fullName, err := os.Executable()
+ if err != nil {
+ log.Panic(err)
+ }
+ fmt.Printf("%s %s", filepath.Base(fullName), version)
+ return
+ }
cfgfile := path.Join(taldirconfdir, "taldir.conf")
if len(*cfgFlag) != 0 {
cfg, err = ini.Load(*cfgFlag)
if err != nil {
- fmt.Printf("Failed to read config: %v\n", err)
- os.Exit(1)
+ log.Panic(err)
}
} else {
// FIXME also try in datahome
cfg, err = ini.LooseLoad(cfgfile)
if err != nil {
- fmt.Printf("Failed to read config: %v\n", err)
- os.Exit(1)
+ log.Panic(err)
}
}
if *listSectionFlag {
@@ -114,8 +124,7 @@ func main() {
return
}
if len(*sectionFlag) == 0 {
- fmt.Println("No section given!")
- os.Exit(1)
+ log.Panic(err)
}
sec := cfg.Section(*sectionFlag)
printCfgOptions(sec, optionFlag, onlyValueFlag)
diff --git a/cmd/taldir-dbinit/main.go b/cmd/taldir-dbinit/main.go
@@ -25,6 +25,7 @@ import (
"log"
"os"
"path"
+ "path/filepath"
"strings"
_ "github.com/lib/pq"
@@ -35,6 +36,7 @@ import (
)
var (
+ version string
taldirdatahome string
taldirconfdir string
)
@@ -83,12 +85,22 @@ func main() {
getopt.Alias("c", "config")
var helpFlag = flag.Bool("h", false, "Print help")
getopt.Alias("h", "help")
+ var versionFlag = flag.Bool("v", false, "Print version")
+ getopt.Alias("v", "version")
getopt.Parse()
if *helpFlag {
printHelp()
return
}
+ if *versionFlag {
+ fullName, err := os.Executable()
+ if err != nil {
+ log.Panic(err)
+ }
+ fmt.Printf("%s %s", filepath.Base(fullName), version)
+ return
+ }
cfgfile := path.Join(taldirconfdir, "taldir.conf")
if len(*cfgFlag) != 0 {
cfg, err = ini.Load(*cfgFlag)
diff --git a/cmd/taldir-server/main.go b/cmd/taldir-server/main.go
@@ -33,6 +33,7 @@ import (
"net/http"
"os"
"path"
+ "path/filepath"
"database/sql"
@@ -44,11 +45,9 @@ import (
)
var (
- t taldir.Taldir
version string
taldirdatahome string
taldirconfdir string
- verbose bool // FIXME do something with this?
)
func handleRequests(t *taldir.Taldir) {
@@ -69,10 +68,10 @@ func main() {
// FIXME use flags
loglevelStringOpt := flag.String("L", "INFO", "Log level to use. DEBUG, INFO, WARNING or ERROR")
getopt.Alias("L", "loglevel")
- var verboseFlag = flag.Bool("v", false, "Verbose")
- getopt.Alias("v", "verbose")
var helpFlag = flag.Bool("h", false, "Print help")
getopt.Alias("h", "help")
+ var versionFlag = flag.Bool("v", false, "Print version")
+ getopt.Alias("v", "version")
getopt.Parse()
cfgfile := path.Join(taldirconfdir, "taldir.conf")
@@ -83,7 +82,14 @@ func main() {
printHelp()
return
}
- verbose = *verboseFlag
+ if *versionFlag {
+ fullName, err := os.Executable()
+ if err != nil {
+ log.Panic(err)
+ }
+ fmt.Printf("%s %s", filepath.Base(fullName), version)
+ return
+ }
loglevel := taldir.LogInfo
for loglevelNum, loglevelString := range taldir.LoglevelStringMap {
if loglevelString == *loglevelStringOpt {
diff --git a/debian/taler-directory.service b/debian/taler-directory.service
@@ -9,7 +9,7 @@ Restart=always
RestartSec=1s
RestartPreventExitStatus=9
RuntimeMaxSec=3600s
-ExecStart=/usr/bin/taler-directory -c /etc/taler-directory/taler-directory.conf
+ExecStart=/usr/bin/taler-directory-httpd -c /etc/taler-directory/taler-directory.conf
[Install]
WantedBy=multi-user.target