tAccept flags as INI file config - partage - File upload system
(HTM) git clone git://git.z3bra.org/partage.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit c16f493ec9bbd9302f58b1cce36c2a0c3dab2548
(DIR) parent b23d1149f4cae552d6ded2fcecae44c371e4d5a0
(HTM) Author: Willy Goiffon <dev@z3bra.org>
Date: Tue, 19 Oct 2021 08:54:10 +0200
Accept flags as INI file config
Diffstat:
M go.mod | 5 ++++-
M partage.go | 25 +++++++++++++------------
2 files changed, 17 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/go.mod b/go.mod
t@@ -2,4 +2,7 @@ module git.z3bra.org/partage
go 1.17
-require github.com/dustin/go-humanize v1.0.0 // indirect
+require (
+ github.com/dustin/go-humanize v1.0.0 // indirect
+ github.com/vharitonsky/iniflags v0.0.0-20180513140207-a33cd0b5f3de // indirect
+)
(DIR) diff --git a/partage.go b/partage.go
t@@ -14,6 +14,7 @@ import (
"encoding/json"
"github.com/dustin/go-humanize"
+ "github.com/vharitonsky/iniflags"
)
type templatedata struct {
t@@ -214,18 +215,18 @@ func uploader(w http.ResponseWriter, r *http.Request) {
}
func main() {
- flag.StringVar(&conf.bind, "l", "0.0.0.0:8080", "Address to bind to (default: 0.0.0.0:8080)")
- flag.StringVar(&conf.baseuri, "b", "http://127.0.0.1:8080", "Base URI to use for links (default: http://127.0.0.1:8080)")
- flag.StringVar(&conf.filepath, "f", "./files", "Path to save files to (default: ./files)")
- flag.StringVar(&conf.metapath, "m", "./meta", "Path to save metadata to (default: ./meta)")
- flag.StringVar(&conf.filectx, "c", "/f/", "Context to serve files from (default: /f/)")
- flag.StringVar(&conf.metactx, "d", "/m/", "Context to serve metadata from (default: /m/)")
- flag.StringVar(&conf.rootdir, "r", "./static", "Root directory (default: ./static)")
- flag.StringVar(&conf.templatedir, "t", "./templates", "Templates directory (default: ./templates)")
- flag.Int64Var(&conf.maxsize, "s", 30064771072, "Maximum file size (default: 28Gib)")
- flag.Int64Var(&conf.expiry, "e", 86400, "Link expiration time (default: 24h)")
-
- flag.Parse()
+ flag.StringVar(&conf.bind, "bind", "0.0.0.0:8080", "Address to bind to (default: 0.0.0.0:8080)")
+ flag.StringVar(&conf.baseuri, "baseuri", "http://127.0.0.1:8080", "Base URI to use for links (default: http://127.0.0.1:8080)")
+ flag.StringVar(&conf.filepath, "filepath", "./files", "Path to save files to (default: ./files)")
+ flag.StringVar(&conf.metapath, "metapath", "./meta", "Path to save metadata to (default: ./meta)")
+ flag.StringVar(&conf.filectx, "filectx", "/f/", "Context to serve files from (default: /f/)")
+ flag.StringVar(&conf.metactx, "metactx", "/m/", "Context to serve metadata from (default: /m/)")
+ flag.StringVar(&conf.rootdir, "rootdir", "./static", "Root directory (default: ./static)")
+ flag.StringVar(&conf.templatedir, "templatedir", "./templates", "Templates directory (default: ./templates)")
+ flag.Int64Var(&conf.maxsize, "maxsize", 30064771072, "Maximum file size (default: 28Gib)")
+ flag.Int64Var(&conf.expiry, "expiry", 86400, "Link expiration time (default: 24h)")
+
+ iniflags.Parse()
http.HandleFunc("/", uploader)
http.Handle(conf.filectx, http.StripPrefix(conf.filectx, http.FileServer(http.Dir(conf.filepath))))