Switch config file to yaml

This commit is contained in:
Gary Talent 2017-01-28 02:36:40 -06:00
parent 2b06810bd7
commit 8879463cb9
4 changed files with 42 additions and 35 deletions

View File

@ -27,7 +27,7 @@ type cmdOptions struct {
func parseCmdOptions() cmdOptions {
var o cmdOptions
flag.StringVar(&o.cmd, "cmd", CMD_SERVE, "Mode to run command in ("+CMD_SERVE+","+CMD_SPINDOWNALL+")")
flag.StringVar(&o.config, "config", "dospin.json", "Path to the dospin config file")
flag.StringVar(&o.config, "config", "dospin.yaml", "Path to the dospin config file")
flag.StringVar(&o.logFile, "logFile", "stdout", "Path to the dospin log file")
flag.Parse()
return o

View File

@ -1,20 +0,0 @@
{
"ApiToken": "<your token here>",
"Servers": {
"minecraft": {
"Ports": [25565],
"UsePublicIP": false,
"InitialSize": "4gb",
"Size": "4gb",
"Region": "nyc1",
"SshKeys": [
"Key1",
"gtalent2@gmail.com"
],
"UsePersistentImage": false,
"ImageSlug": "ubuntu-16-04-x64",
"Volumes": ["volume-nyc1-01"],
"UserData": "#!/bin/bash\napt-get update\napt-get install -y docker.io\nmkdir -p /mnt/volume-nyc1-01\nmount -o discard,defaults /dev/disk/by-id/scsi-0DO_Volume_volume-nyc1-01 /mnt/volume-nyc1-01\necho /dev/disk/by-id/scsi-0DO_Volume_volume-nyc1-01 /mnt/volume-nyc1-01 ext4 defaults,nofail,discard 0 0 | tee -a /etc/fstab\ndocker run -d --restart=always -p 25565:25565 -v /mnt/volume-nyc1-01/minecraft-server:/minecraft-server -w /minecraft-server -t java:8-alpine sh start.sh"
}
}
}

26
dospin.yaml Normal file
View File

@ -0,0 +1,26 @@
---
api_token: <your token here>
servers:
minecraft:
ports:
- 25565
use_public_ip: false
initial_size: 4gb
size: 4gb
region: nyc1
ssh_keys:
- Key1
- gtalent2@gmail.com
use_persistent_image: false
image_slug: ubuntu-16-04-x64
volumes:
- volume-nyc1-01
user_data: |-
#!/bin/bash
apt-get update
apt-get install -y docker.io
mkdir -p /mnt/volume-nyc1-01
mount -o discard,defaults /dev/disk/by-id/scsi-0DO_Volume_volume-nyc1-01 /mnt/volume-nyc1-01
echo /dev/disk/by-id/scsi-0DO_Volume_volume-nyc1-01 /mnt/volume-nyc1-01 ext4 defaults,nofail,discard 0 0 | tee -a /etc/fstab
docker run -d --restart=always -p 25565:25565 -v /mnt/volume-nyc1-01/minecraft-server:/minecraft-server -w /minecraft-server -t java:8-alpine sh start.sh

View File

@ -8,26 +8,27 @@
package main
import (
"encoding/json"
"gopkg.in/yaml.v2"
"io/ioutil"
)
type Settings struct {
ApiToken string
Servers map[string]Server
ApiToken string `yaml:"api_token"`
Servers map[string]Server `yaml:"servers"`
}
type Server struct {
Ports []int
UsePublicIP bool
InitialSize string
Size string
Region string
UsePersistentImage bool
ImageSlug string
UserData string
SshKeys []string
Volumes []string
Ports []int `yaml:"ports"`
ActivityTimeoutMin int `yaml:"activity_timeout_min"`
UsePublicIP bool `yaml:"use_public_ip"`
InitialSize string `yaml:"initial_size"`
Size string `yaml:"size"`
Region string `yaml:"region"`
UsePersistentImage bool `yaml:"use_persistent_image"`
ImageSlug string `yaml:"image_slug"`
UserData string `yaml:"user_data"`
SshKeys []string `yaml:"ssh_keys"`
Volumes []string `yaml:"volumes"`
}
func loadSettings(path string) (Settings, error) {
@ -37,7 +38,7 @@ func loadSettings(path string) (Settings, error) {
return s, err
}
err = json.Unmarshal(data, &s)
err = yaml.Unmarshal(data, &s)
if err != nil {
return s, err
}