deb-simple/config.go

74 lines
1.6 KiB
Go
Raw Permalink Normal View History

2018-10-14 08:17:04 +00:00
package main
2017-06-12 00:41:49 +00:00
import (
"path"
"strings"
2017-06-12 00:41:49 +00:00
)
type Conf struct {
2020-06-14 08:49:48 +00:00
Fs FsConf `ini:"fs"`
2017-06-12 00:41:49 +00:00
Http HttpConf `ini:"http"`
Repo RepoConf `ini:"repo"`
PGP PGPConf `ini:"pgp"`
}
2020-06-14 08:49:48 +00:00
type FsConf struct {
Driver string `ini:"driver"`
TmpDriver string `ini:"tmpDriver"`
2020-06-14 08:49:48 +00:00
S3 struct {
Bucket string `ini:"bucket"`
Region string `ini:"region"`
Endpoint string `ini:"endpoint"`
ID string `ini:"id"`
Secret string `ini:"secret"`
} `ini:"s3"`
}
2017-06-12 00:41:49 +00:00
type HttpConf struct {
Port int `ini:"port"`
Key string `ini:"key"`
SSL bool `ini:"ssl"`
SSLCert string `ini:"cert"`
SSLKey string `ini:"key"`
2018-10-14 08:14:17 +00:00
EnableVhosts bool `ini:"vhosts"`
2017-06-12 00:41:49 +00:00
}
type RepoConf struct {
Root string `ini:"root"`
Distros string `ini:"distros"`
Architectures string `ini:"architectures"`
}
type PGPConf struct {
Key string `ini:"key"`
Passphrase string `ini:"passphrase"`
}
func (c Conf) DistPath(distro string) string {
2020-06-14 08:29:16 +00:00
return path.Join("dists", distro)
2017-06-12 00:41:49 +00:00
}
func (c Conf) ArchPath(distro, arch string) string {
2020-06-14 08:29:16 +00:00
return path.Join("dists", distro, "main/binary-"+arch)
2017-06-12 00:41:49 +00:00
}
func (c Conf) PoolPath(distro, arch string) string {
2020-06-14 08:29:16 +00:00
return path.Join("pool/main", distro, arch)
2017-06-12 00:41:49 +00:00
}
func (c Conf) PoolPackagePath(distro, arch, name string) string {
2020-06-14 08:29:16 +00:00
return c.RelativePoolPackagePath(distro, arch, name)
}
func (c Conf) RelativePoolPackagePath(distro, arch, name string) string {
2017-06-12 00:41:49 +00:00
name = packageName(name)
2017-09-14 04:23:39 +00:00
return path.Join("pool/main", distro, arch, name[0:1], name)
2017-06-12 00:41:49 +00:00
}
func (c RepoConf) DistroNames() []string {
return strings.Split(c.Distros, ",")
}
func (c RepoConf) ArchitectureNames() []string {
return strings.Split(c.Architectures, ",")
}