]> src.bluestatic.org Git - armadillo.git/blob - src/main.go
Add a sample configuration file.
[armadillo.git] / src / main.go
1 //
2 // Armadillo File Manager
3 // Copyright (c) 2010, Robert Sesek <http://www.bluestatic.org>
4 //
5 // This program is free software: you can redistribute it and/or modify it under
6 // the terms of the GNU General Public License as published by the Free Software
7 // Foundation, either version 3 of the License, or any later version.
8 //
9
10 package main
11
12 import (
13 "flag"
14 "fmt"
15 "./config"
16 "./paths"
17 "./server"
18 )
19
20 func main() {
21 // Set up the basic flags.
22 var configPath *string = flag.String("config", "~/.armadillo", "Path to the configuration file")
23 var jailRoot *string = flag.String("jail", "", "Restrict file operations to this directory root")
24 var port *int = flag.Int("port", 0, "Port to run the server on")
25 flag.Parse()
26
27 // Load the configuration file, if it is present.
28 var configuration = new(config.Configuration)
29 fmt.Printf("Reading configuration from %v\n", *configPath)
30 if len(*configPath) > 0 {
31 error := config.ReadFromFile(*configPath, configuration)
32 if error != nil {
33 fmt.Printf("Error while reading configuration: %v\n", error)
34 }
35 }
36
37 // Override configuration values with command line arguments.
38 if *jailRoot != "" {
39 configuration.JailRoot = *jailRoot
40 }
41 if *port != 0 {
42 configuration.Port = *port
43 }
44
45 // Run the server.
46 fmt.Printf("Starting Armadillo on port %d with root:\n %v\n",
47 configuration.Port, configuration.JailRoot)
48 paths.SetConfig(configuration)
49 server.RunBackEnd(configuration)
50 }