2014-06-04 21:25:38 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"os/user"
|
|
|
|
"path/filepath"
|
|
|
|
|
|
|
|
"github.com/BurntSushi/toml"
|
|
|
|
)
|
|
|
|
|
|
|
|
// initialize the .drone directory and create a skeleton config
|
|
|
|
// file if one does not already exist.
|
|
|
|
func init() {
|
|
|
|
// load the current user
|
|
|
|
u, err := user.Current()
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// create the .drone home directory
|
|
|
|
os.MkdirAll(filepath.Join(u.HomeDir, ".drone"), 0777)
|
|
|
|
|
|
|
|
// check for the config file
|
|
|
|
filename := filepath.Join(u.HomeDir, ".drone", "config.toml")
|
|
|
|
if _, err := os.Stat(filename); err != nil {
|
|
|
|
// if not exists, create
|
|
|
|
ioutil.WriteFile(filename, []byte(defaultConfig), 0777)
|
|
|
|
}
|
|
|
|
|
|
|
|
// load the configuration file and parse
|
|
|
|
if _, err := toml.DecodeFile(filename, &conf); err != nil {
|
|
|
|
fmt.Println(err)
|
|
|
|
os.Exit(1)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var defaultConfig = `
|
|
|
|
# Enables user self-registration. If false, the system administrator
|
|
|
|
# will need to manually add users to the system.
|
2014-06-05 19:07:24 +00:00
|
|
|
registration = true
|
2014-06-04 21:25:38 +00:00
|
|
|
|
|
|
|
[smtp]
|
|
|
|
host = ""
|
|
|
|
port = ""
|
|
|
|
from = ""
|
|
|
|
username = ""
|
|
|
|
password = ""
|
|
|
|
|
|
|
|
[bitbucket]
|
|
|
|
url = "https://bitbucket.org"
|
|
|
|
api = "https://bitbucket.org"
|
|
|
|
client = ""
|
|
|
|
secret = ""
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[github]
|
|
|
|
url = "https://github.com"
|
|
|
|
api = "https://api.github.com"
|
|
|
|
client = ""
|
|
|
|
secret = ""
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[githubenterprise]
|
|
|
|
url = ""
|
|
|
|
api = ""
|
|
|
|
client = ""
|
|
|
|
secret = ""
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[gitlab]
|
|
|
|
url = ""
|
|
|
|
api = ""
|
|
|
|
client = ""
|
|
|
|
secret = ""
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[stash]
|
|
|
|
url = ""
|
|
|
|
api = ""
|
|
|
|
client = ""
|
|
|
|
secret = ""
|
|
|
|
enabled = false
|
|
|
|
`
|