Split out setupFilesystem to clean up the code
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Tyler 2020-06-18 21:50:41 -04:00
parent 4a6ab368c6
commit 50f4709b4c

106
server.go
View File

@ -22,7 +22,7 @@ import (
"sync"
)
var VERSION = "1.4.4"
var VERSION = "1.4.5"
func packageName(name string) string {
if index := strings.Index(name, "_"); index != -1 {
@ -75,6 +75,60 @@ func main() {
log.WithError(err).Fatalln("unable to marshal config file, exiting...", err)
}
if err := createDirs(conf); err != nil {
log.WithError(err).Fatalln("error creating directory structure, exiting")
}
if err := setupPgp(conf); err != nil {
log.WithError(err).Fatalln("error loading pgp key, exiting")
}
setupFilesystem()
log.Info("Indexing packages...")
for _, dist := range conf.Repo.DistroNames() {
if err := loadCache(dist); err != nil {
log.Info("Unable to load cached data for", dist, "- reindexing")
distro := &Distro{Name: dist, Architectures: make(map[string]map[string]*PackageFile)}
go scanInitialPackages(conf, distro)
distros[dist] = distro
}
}
mux := http.NewServeMux()
httpFs := afero.NewHttpFs(fs)
mux.Handle("/", http.StripPrefix("/", http.FileServer(httpFs)))
mux.HandleFunc("/rescan", requireAuth(rescanHandler))
mux.HandleFunc("/upload", requireAuth(uploadHandler))
mux.HandleFunc("/delete", requireAuth(deleteHandler))
bind := fmt.Sprintf(":%d", conf.Http.Port)
if conf.Http.SSL {
log.WithFields(log.Fields{
"bind": bind,
"certFile": conf.Http.SSLCert,
"keyFile": conf.Http.SSLKey,
}).Info("Starting with SSL enabled")
err = http.ListenAndServeTLS(bind, conf.Http.SSLCert, conf.Http.SSLKey, mux)
} else {
log.WithField("bind", bind).Info("Starting without SSL enabled")
err = http.ListenAndServe(bind, mux)
}
if err != nil {
log.WithError(err).Fatalln("Unable to start or keep running due to error")
}
}
func setupFilesystem() {
osFs := afero.NewOsFs()
switch conf.Fs.Driver {
@ -119,56 +173,6 @@ func main() {
tmpFs = afero.NewBasePathFs(osFs, baseTempDir)
}
if err := createDirs(conf); err != nil {
log.WithError(err).Fatalln("error creating directory structure, exiting")
}
if err := setupPgp(conf); err != nil {
log.WithError(err).Fatalln("error loading pgp key, exiting")
}
log.Info("Indexing packages...")
for _, dist := range conf.Repo.DistroNames() {
if err := loadCache(dist); err != nil {
log.Info("Unable to load cached data for", dist, "- reindexing")
distro := &Distro{Name: dist, Architectures: make(map[string]map[string]*PackageFile)}
go scanInitialPackages(conf, distro)
distros[dist] = distro
}
}
mux := http.NewServeMux()
httpFs := afero.NewHttpFs(fs)
mux.Handle("/", http.StripPrefix("/", http.FileServer(httpFs)))
mux.HandleFunc("/rescan", requireAuth(rescanHandler))
mux.HandleFunc("/upload", requireAuth(uploadHandler))
mux.HandleFunc("/delete", requireAuth(deleteHandler))
bind := fmt.Sprintf(":%d", conf.Http.Port)
if conf.Http.SSL {
log.WithFields(log.Fields{
"bind": bind,
"certFile": conf.Http.SSLCert,
"keyFile": conf.Http.SSLKey,
}).Info("Starting with SSL enabled")
err = http.ListenAndServeTLS(bind, conf.Http.SSLCert, conf.Http.SSLKey, mux)
} else {
log.WithField("bind", bind).Info("Starting without SSL enabled")
err = http.ListenAndServe(bind, mux)
}
if err != nil {
log.WithError(err).Fatalln("Unable to start or keep running due to error")
}
}
func scanInitialPackages(config Conf, dist *Distro) {