added configuration
This commit is contained in:
		
							parent
							
								
									d8726a7e6e
								
							
						
					
					
						commit
						d8e42671ef
					
				@ -1,7 +1,34 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import s3share "git.kapelle.org/niklas/s3share/internal"
 | 
			
		||||
import (
 | 
			
		||||
	s3share "git.kapelle.org/niklas/s3share/internal"
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/types"
 | 
			
		||||
	"github.com/alexflint/go-arg"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type args struct {
 | 
			
		||||
	S3Endpoint   string `arg:"--s3-endpoint,required,env:S3_ENDPOINT" help:"host[:port]" placeholder:"ENDPOINT"`
 | 
			
		||||
	S3Bucket     string `arg:"--s3-bucket,required,env:S3_BUCKET" help:"bucket to use" placeholder:"BUCKET"`
 | 
			
		||||
	S3AccessKey  string `arg:"--s3-access-key,required,env:S3_ACCESS_KEY" placeholder:"ACCESS_KEY"`
 | 
			
		||||
	S3SecretKey  string `arg:"--s3-secret-key,required,env:S3_SECRET_KEY" placeholder:"SECRET_KEY"`
 | 
			
		||||
	S3DisableSSL bool   `arg:"--s3-disable-ssl,env:S3_DISABLE_SSL" default:"false"`
 | 
			
		||||
	Address      string `arg:"--address,env:ADDRESS" default:":3000" help:"what address to listen on" placeholder:"ADDRESS"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (args) Version() string {
 | 
			
		||||
	// TODO
 | 
			
		||||
	return "s3share 0.1"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	s3share.Start()
 | 
			
		||||
	var args args
 | 
			
		||||
	arg.MustParse(&args)
 | 
			
		||||
 | 
			
		||||
	s3share.Start(&types.AppConfig{
 | 
			
		||||
		S3Endpoint:  args.S3Endpoint,
 | 
			
		||||
		S3AccessKey: args.S3AccessKey,
 | 
			
		||||
		S3SecretKey: args.S3SecretKey,
 | 
			
		||||
		S3SSL:       !args.S3DisableSSL,
 | 
			
		||||
		Address:     args.Address,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@ -8,6 +8,8 @@ require (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/alexflint/go-arg v1.4.3 // indirect
 | 
			
		||||
	github.com/alexflint/go-scalar v1.1.0 // indirect
 | 
			
		||||
	github.com/dustin/go-humanize v1.0.0 // indirect
 | 
			
		||||
	github.com/google/uuid v1.1.1 // indirect
 | 
			
		||||
	github.com/json-iterator/go v1.1.12 // indirect
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								go.sum
									
									
									
									
									
								
							@ -1,3 +1,7 @@
 | 
			
		||||
github.com/alexflint/go-arg v1.4.3 h1:9rwwEBpMXfKQKceuZfYcwuc/7YY7tWJbFsgG5cAU/uo=
 | 
			
		||||
github.com/alexflint/go-arg v1.4.3/go.mod h1:3PZ/wp/8HuqRZMUUgu7I+e1qcpUbvmS258mRXkFH4IA=
 | 
			
		||||
github.com/alexflint/go-scalar v1.1.0 h1:aaAouLLzI9TChcPXotr6gUhq+Scr8rl0P9P4PnltbhM=
 | 
			
		||||
github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
 | 
			
		||||
@ -37,6 +41,7 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f h1:aZp0e2vLN4MToVqnjNEYEtrEA8RH8U8FN1CU7JgqsPU=
 | 
			
		||||
@ -55,5 +60,7 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
 | 
			
		||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
 | 
			
		||||
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
			
		||||
 | 
			
		||||
@ -4,16 +4,17 @@ import (
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/client"
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/db"
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/s3"
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/types"
 | 
			
		||||
	"git.kapelle.org/niklas/s3share/internal/web"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func Start() {
 | 
			
		||||
func Start(config *types.AppConfig) {
 | 
			
		||||
	db, err := db.NewSqlLiteDB("foo.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	s3Client, err := s3.NewMinio("localhost:9000", "testo", "testo", "hunter22", false)
 | 
			
		||||
	s3Client, err := s3.NewMinio(config.S3Endpoint, config.S3Bucket, config.S3AccessKey, config.S3SecretKey, config.S3SSL)
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
@ -21,13 +22,7 @@ func Start() {
 | 
			
		||||
 | 
			
		||||
	client := client.NewClient(db, s3Client)
 | 
			
		||||
 | 
			
		||||
	// share, err := client.CreateShare(context.Background(), "/go.mod")
 | 
			
		||||
	// if err != nil {
 | 
			
		||||
	// 	panic(err)
 | 
			
		||||
	// }
 | 
			
		||||
	// logrus.Info(share.Slug)
 | 
			
		||||
 | 
			
		||||
	err = web.StartWebserver("localhost:8080", *client)
 | 
			
		||||
	err = web.StartWebserver(config.Address, *client)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -4,3 +4,12 @@ type Share struct {
 | 
			
		||||
	Slug string `json:"slug"`
 | 
			
		||||
	Key  string `json:"key"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AppConfig struct {
 | 
			
		||||
	S3Endpoint  string
 | 
			
		||||
	S3AccessKey string
 | 
			
		||||
	S3SecretKey string
 | 
			
		||||
	S3SSL       bool
 | 
			
		||||
	S3Bucket    string
 | 
			
		||||
	Address     string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user