Random port after all #152

Former-commit-id: cac7b9214af0d8f01c98aa8dd8a9cd3d564125cb [formerly 25bf09a073b247ca282796610a4ac3de6f98e6ec] [formerly ba24813e1e5e4fc9105ff6a48018e6d6d6ed3142 [formerly dd3ccec696]]
Former-commit-id: 79b54956082db4f93d78cb04c48bcab4390c1163 [formerly 6cf6c0f610527cf7664149bd8fcccc22107f8de8]
Former-commit-id: 092e7842602412ef71623865bc32856ba959bbbc
This commit is contained in:
Henrique Dias 2017-07-26 10:01:06 +01:00
parent a936d04bfc
commit 3a2ccf6275
2 changed files with 16 additions and 6 deletions

View File

@ -53,11 +53,13 @@ You can either use flags or a JSON configuration file, which should have the fol
}
```
The `scope`, `allowCommands`, `allowEdit`, `allowNew` and `commands` options are the defaults for new users. To set a configuration file, you will need to pass the path with a flag, like this: `filemanager --config=/path/to/config.json`.
The `scope`, `allowCommands`, `allowEdit`, `allowNew` and `commands` options are the defaults for new users. To set a configuration file, you will need to pass the path with a flag, like this: `filemanager --config=/path/to/config.json`.
Otherwise, you may not want to use a configuration file, which can be done using the following flags:
```
-address string
Address to listen to (default is all of them)
-allow-commands
Default allow commands option (default true)
-allow-edit
@ -69,9 +71,9 @@ Otherwise, you may not want to use a configuration file, which can be done using
-database string
Database path (default "./filemanager.db")
-port string
HTTP Port (default "80")
HTTP Port (default is random)
-scope string
Defualt scope for new users (default ".")
Default scope for new users (default ".")
```
# Features

View File

@ -5,6 +5,7 @@ import (
"flag"
"fmt"
"io/ioutil"
"net"
"net/http"
"strconv"
"strings"
@ -27,6 +28,7 @@ type confFile struct {
}
var (
addr string
config string
database string
scope string
@ -39,7 +41,8 @@ var (
func init() {
flag.StringVar(&config, "config", "", "JSON configuration file")
flag.StringVar(&port, "port", "8080", "HTTP Port")
flag.StringVar(&port, "port", "0", "HTTP Port (default is random)")
flag.StringVar(&addr, "address", "", "Address to listen to (default is all of them)")
flag.StringVar(&database, "database", "./filemanager.db", "Database path")
flag.StringVar(&scope, "scope", ".", "Default scope for new users")
flag.StringVar(&commands, "commands", "git svn hg", "Space separated commands available for new users")
@ -72,8 +75,13 @@ func main() {
fm.SetBaseURL("/")
fm.SetPrefixURL("/")
fmt.Println("Starting filemanager on *:" + port)
if err := http.ListenAndServe(":"+port, fm); err != nil {
listener, err := net.Listen("tcp", addr+":"+port)
if err != nil {
panic(err)
}
fmt.Println("Listening on", listener.Addr().String())
if err := http.Serve(listener, fm); err != nil {
panic(err)
}
}