Define global default value at initialisation

This commit is contained in:
nemunaire 2017-11-25 16:05:03 +01:00 committed by Pierre-Olivier Mercier
commit cd5a9d06ea
9 changed files with 31 additions and 33 deletions

View file

@ -17,10 +17,10 @@ import (
"github.com/dchest/blake2b"
)
var CloudDAVBase string
var CloudUsername string
var CloudPassword string
var RapidImport bool
var CloudDAVBase string = "https://srs.epita.fr/owncloud/remote.php/webdav/FIC 2018"
var CloudUsername string = "fic"
var CloudPassword string = ""
var RapidImport bool = false
type uploadedFile struct {
URI string

View file

@ -12,8 +12,6 @@ import (
"github.com/julienschmidt/httprouter"
)
var SettingsDir string
func init() {
router.GET("/api/settings.json", apiHandler(getSettings))
router.PUT("/api/settings.json", apiHandler(saveSettings))
@ -22,8 +20,8 @@ func init() {
}
func getSettings(_ httprouter.Params, body []byte) (interface{}, error) {
if settings.ExistsSettings(path.Join(SettingsDir, settings.SettingsFile)) {
return settings.ReadSettings(path.Join(SettingsDir, settings.SettingsFile))
if settings.ExistsSettings(path.Join(settings.SettingsDir, settings.SettingsFile)) {
return settings.ReadSettings(path.Join(settings.SettingsDir, settings.SettingsFile))
} else {
return settings.FICSettings{"Challenge FIC", "Laboratoire SRS, ÉPITA", time.Unix(0,0), time.Unix(0,0), time.Unix(0,0), fic.FirstBlood, fic.SubmissionCostBase, false, false, false, true, true}, nil
}
@ -35,7 +33,7 @@ func saveSettings(_ httprouter.Params, body []byte) (interface{}, error) {
return nil, err
}
if err := settings.SaveSettings(path.Join(SettingsDir, settings.SettingsFile), config); err != nil {
if err := settings.SaveSettings(path.Join(settings.SettingsDir, settings.SettingsFile), config); err != nil {
return nil, err
} else {
return config, err

View file

@ -14,6 +14,7 @@ import (
"srs.epita.fr/fic-server/admin/api"
"srs.epita.fr/fic-server/libfic"
"srs.epita.fr/fic-server/settings"
)
var PKIDir string
@ -66,15 +67,15 @@ func main() {
flag.StringVar(&PKIDir, "pki", "./pki/", "Base directory where found PKI scripts")
flag.StringVar(&StaticDir, "static", "./htdocs-admin/", "Directory containing static files")
flag.StringVar(&api.TeamsDir, "teams", "./TEAMS", "Base directory where save teams JSON files")
flag.StringVar(&api.SettingsDir, "settings", "./SETTINGS", "Base directory where load and save settings")
flag.StringVar(&fic.FilesDir, "files", "./FILES/", "Base directory where found challenges files, local part")
flag.StringVar(&api.CloudDAVBase, "clouddav", "https://srs.epita.fr/owncloud/remote.php/webdav/FIC 2016",
flag.StringVar(&settings.SettingsDir, "settings", settings.SettingsDir, "Base directory where load and save settings")
flag.StringVar(&fic.FilesDir, "files", fic.FilesDir, "Base directory where found challenges files, local part")
flag.StringVar(&api.CloudDAVBase, "clouddav", api.CloudDAVBase,
"Base directory where found challenges files, cloud part")
flag.StringVar(&api.CloudUsername, "clouduser", "fic", "Username used to sync")
flag.StringVar(&api.CloudPassword, "cloudpass", "", "Password used to sync")
flag.BoolVar(&api.RapidImport, "rapidimport", false, "Don't try to reimport an existing file")
flag.BoolVar(&fic.OptionalDigest, "optionaldigest", false, "Is the digest required when importing files?")
flag.BoolVar(&fic.StrongDigest, "strongdigest", false, "Are BLAKE2b digests required instead of SHA-1 or BLAKE2b?")
flag.StringVar(&api.CloudUsername, "clouduser", api.CloudUsername, "Username used to sync")
flag.StringVar(&api.CloudPassword, "cloudpass", api.CloudPassword, "Password used to sync")
flag.BoolVar(&api.RapidImport, "rapidimport", api.RapidImport, "Don't try to reimport an existing file")
flag.BoolVar(&fic.OptionalDigest, "optionaldigest", fic.OptionalDigest, "Is the digest required when importing files?")
flag.BoolVar(&fic.StrongDigest, "strongdigest", fic.StrongDigest, "Are BLAKE2b digests required instead of SHA-1 or BLAKE2b?")
flag.Parse()
log.SetPrefix("[admin] ")
@ -94,7 +95,7 @@ func main() {
if api.TeamsDir, err = filepath.Abs(api.TeamsDir); err != nil {
log.Fatal(err)
}
if api.SettingsDir, err = filepath.Abs(api.SettingsDir); err != nil {
if settings.SettingsDir, err = filepath.Abs(settings.SettingsDir); err != nil {
log.Fatal(err)
}
if fic.FilesDir, err = filepath.Abs(fic.FilesDir); err != nil {

View file

@ -14,7 +14,7 @@ import (
func init() {
api.Router().GET("/time.json", func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
if config, err := settings.ReadSettings(path.Join(api.SettingsDir, settings.SettingsFile)); err != nil {
if config, err := settings.ReadSettings(path.Join(settings.SettingsDir, settings.SettingsFile)); err != nil {
http.Error(w, fmt.Sprintf("{\"errmsg\":%q}", err), http.StatusInternalServerError)
} else {
time.ChallengeStart = config.Start