55 "../serverError"
66 "../util"
77 "errors"
8+ "net/http"
89 "os"
10+ "strconv"
911 "strings"
1012)
1113
@@ -276,51 +278,38 @@ func ParseCli() (params []*Param, printVersion, printHelp bool, errs []error) {
276278
277279 // init param data
278280 params = make ([]* Param , 0 , len (results ))
279- var err error
280281 var es []error
281282 for _ , result := range results {
282283 param := & Param {}
283284
284- // normalize option
285+ // regular option
286+ param .Root , _ = result .GetString ("root" )
285287 param .EmptyRoot = result .HasKey ("emptyroot" )
288+ param .PrefixUrls , _ = result .GetStrings ("prefixurls" )
286289 param .DefaultSort , _ = result .GetString ("defaultsort" )
287- param .GlobalUpload = result .HasKey ("globalupload" )
288- param .GlobalMkdir = result .HasKey ("globalmkdir" )
289- param .GlobalDelete = result .HasKey ("globaldelete" )
290- param .GlobalArchive = result .HasKey ("globalarchive" )
291- param .GlobalCors = result .HasKey ("globalcors" )
292- param .GlobalAuth = result .HasKey ("globalauth" )
293290 param .UserMatchCase = result .HasKey ("usermatchcase" )
294291 param .HostNames , _ = result .GetStrings ("hostnames" )
295292 param .Theme , _ = result .GetString ("theme" )
296293 param .ThemeDir , _ = result .GetString ("themedir" )
297294 param .AccessLog , _ = result .GetString ("accesslog" )
298295 param .ErrorLog , _ = result .GetString ("errorlog" )
299296
300- // root
301- root , _ := result .GetString ("root" )
302- root , err = util .NormalizeFsPath (root )
303- errs = serverError .AppendError (errs , err )
304- param .Root = root
305-
306- // normalize url prefixes
307- prefixurls , _ := result .GetStrings ("prefixurls" )
308- param .PrefixUrls = normalizeUrlPaths (prefixurls )
309-
310297 // force dir slash
311298 if result .HasKey ("forcedirslash" ) {
312- forceDirSlash , _ := result .GetString ("forcedirslash" )
313- param .ForceDirSlash = normalizeRedirectCode (forceDirSlash )
299+ strRedirectCode , _ := result .GetString ("forcedirslash" )
300+ redirectCode , _ := strconv .Atoi (strRedirectCode )
301+ if redirectCode == 0 {
302+ redirectCode = http .StatusMovedPermanently
303+ }
304+ param .ForceDirSlash = redirectCode
314305 }
315306
316307 // dir indexes
317- dirIndexes , _ := result .GetStrings ("dirindexes" )
318- param .DirIndexes = normalizeFilenames (dirIndexes )
308+ param .DirIndexes , _ = result .GetStrings ("dirindexes" )
319309
320310 // global restrict access
321311 if result .HasKey ("globalrestrictaccess" ) {
322- globalRestrictAccesses , _ := result .GetStrings ("globalrestrictaccess" )
323- param .GlobalRestrictAccess = util .ExtractHostsFromUrls (globalRestrictAccesses )
312+ param .GlobalRestrictAccess , _ = result .GetStrings ("globalrestrictaccess" )
324313 }
325314
326315 // restrict access urls
@@ -350,64 +339,41 @@ func ParseCli() (params []*Param, printVersion, printHelp bool, errs []error) {
350339 // certificate
351340 certFiles , _ := result .GetStrings ("certs" )
352341 keyFiles , _ := result .GetStrings ("keys" )
353- certs , es := LoadCertificates (certFiles , keyFiles )
342+ certs , es := loadCertificates (certFiles , keyFiles )
354343 errs = append (errs , es ... )
355344 param .Certificates = certs
356345
357- // normalize aliases
346+ // aliases
358347 arrAlias , _ := result .GetStrings ("aliases" )
359348 param .Aliases , es = normalizePathMaps (arrAlias )
360349 errs = append (errs , es ... )
361350
362- // normalize upload urls
363- arrUploadUrls , _ := result .GetStrings ("uploadurls" )
364- param .UploadUrls = normalizeUrlPaths (arrUploadUrls )
365-
366- // normalize upload dirs
367- arrUploadDirs , _ := result .GetStrings ("uploaddirs" )
368- param .UploadDirs = normalizeFsPaths (arrUploadDirs )
369-
370- // normalize mkdir urls
371- arrMkdirUrls , _ := result .GetStrings ("mkdirurls" )
372- param .MkdirUrls = normalizeUrlPaths (arrMkdirUrls )
373-
374- // normalize mkdir dirs
375- arrMkdirDirs , _ := result .GetStrings ("mkdirdirs" )
376- param .MkdirDirs = normalizeFsPaths (arrMkdirDirs )
377-
378- // normalize delete urls
379- arrDeleteUrls , _ := result .GetStrings ("deleteurls" )
380- param .DeleteUrls = normalizeUrlPaths (arrDeleteUrls )
381-
382- // normalize delete dirs
383- arrDeleteDirs , _ := result .GetStrings ("deletedirs" )
384- param .DeleteDirs = normalizeFsPaths (arrDeleteDirs )
385-
386- // normalize archive urls
387- arrArchiveUrls , _ := result .GetStrings ("archiveurls" )
388- param .ArchiveUrls = normalizeUrlPaths (arrArchiveUrls )
351+ // upload/mkdir/delete/archive/cors/auth urls/dirs
352+ param .GlobalUpload = result .HasKey ("globalupload" )
353+ param .UploadUrls , _ = result .GetStrings ("uploadurls" )
354+ param .UploadDirs , _ = result .GetStrings ("uploaddirs" )
389355
390- // normalize archive dirs
391- arrArchiveDirs , _ : = result .GetStrings ("archivedirs " )
392- param .ArchiveDirs = normalizeFsPaths ( arrArchiveDirs )
356+ param . GlobalMkdir = result . HasKey ( "globalmkdir" )
357+ param . MkdirUrls , _ = result .GetStrings ("mkdirurls " )
358+ param .MkdirDirs , _ = result . GetStrings ( "mkdirdirs" )
393359
394- // normalize cors urls
395- arrCorsUrls , _ : = result .GetStrings ("corsurls " )
396- param .CorsUrls = normalizeUrlPaths ( arrCorsUrls )
360+ param . GlobalDelete = result . HasKey ( "globaldelete" )
361+ param . DeleteUrls , _ = result .GetStrings ("deleteurls " )
362+ param .DeleteDirs , _ = result . GetStrings ( "deletedirs" )
397363
398- // normalize cors dirs
399- arrCorsDirs , _ : = result .GetStrings ("corsdirs " )
400- param .CorsDirs = normalizeFsPaths ( arrCorsDirs )
364+ param . GlobalArchive = result . HasKey ( "globalarchive" )
365+ param . ArchiveUrls , _ = result .GetStrings ("archiveurls " )
366+ param .ArchiveDirs , _ = result . GetStrings ( "archivedirs" )
401367
402- // normalize auth urls
403- arrAuthUrls , _ : = result .GetStrings ("authurls " )
404- param .AuthUrls = normalizeUrlPaths ( arrAuthUrls )
368+ param . GlobalCors = result . HasKey ( "globalcors" )
369+ param . CorsUrls , _ = result .GetStrings ("corsurls " )
370+ param .CorsDirs , _ = result . GetStrings ( "corsdirs" )
405371
406- // normalize auth dirs
407- arrAuthDirs , _ : = result .GetStrings ("authdirs " )
408- param .AuthDirs = normalizeFsPaths ( arrAuthDirs )
372+ param . GlobalAuth = result . HasKey ( "globalauth" )
373+ param . AuthUrls , _ = result .GetStrings ("authurls " )
374+ param .AuthDirs , _ = result . GetStrings ( "authdirs" )
409375
410- // normalize users
376+ // users
411377 arrUsersPlain , _ := result .GetStrings ("users" )
412378 param .UsersPlain = EntriesToUsers (arrUsersPlain )
413379 arrUsersBase64 , _ := result .GetStrings ("usersbase64" )
@@ -421,7 +387,7 @@ func ParseCli() (params []*Param, printVersion, printHelp bool, errs []error) {
421387 arrUsersSha512 , _ := result .GetStrings ("userssha512" )
422388 param .UsersSha512 = EntriesToUsers (arrUsersSha512 )
423389
424- // normalize listen
390+ // listen
425391 listens , _ := result .GetStrings ("listens" )
426392 param .Listens = append (param .Listens , listens ... )
427393
@@ -444,27 +410,17 @@ func ParseCli() (params []*Param, printVersion, printHelp bool, errs []error) {
444410 }
445411 }
446412
447- // shows
448- shows , _ := result .GetStrings ("shows" )
449- param .Shows = shows
450-
451- showDirs , _ := result .GetStrings ("showdirs" )
452- param .ShowDirs = showDirs
453-
454- showFiles , _ := result .GetStrings ("showfiles" )
455- param .ShowFiles = showFiles
413+ // shows/hides
414+ param .Shows , _ = result .GetStrings ("shows" )
415+ param .ShowDirs , _ = result .GetStrings ("showdirs" )
416+ param .ShowFiles , _ = result .GetStrings ("showfiles" )
417+ param .Hides , _ = result .GetStrings ("hides" )
418+ param .HideDirs , _ = result .GetStrings ("hidedirs" )
419+ param .HideFiles , _ = result .GetStrings ("hidefiles" )
456420
457- // hides
458- hides , _ := result .GetStrings ("hides" )
459- param .Hides = hides
460-
461- hideDirs , _ := result .GetStrings ("hidedirs" )
462- param .HideDirs = hideDirs
463-
464- hideFiles , _ := result .GetStrings ("hidefiles" )
465- param .HideFiles = hideFiles
421+ es = param .normalize ()
422+ errs = append (errs , es ... )
466423
467- param .normalize ()
468424 params = append (params , param )
469425 }
470426
0 commit comments