package config import ( "bytes" "io/ioutil" "github.com/BurntSushi/toml" ) // Config defines config fields type Config struct { DatabaseConnection string BindAddress string AssetsDirectory string TemplatesDirectory string ContentDirectory string ContentWebDirectory string Snapchat Snapchat Twitter Twitter Instagram Instagram Tumblr Tumblr Folder Folder } // Folder defines fields for Folder configuration type Folder struct { Folder string } // Tumblr defines fields for Tumblr configuration type Tumblr struct { Tag string APIKey string } // Instagram defines fields for Instagram configuration type Instagram struct { Tag string } // Twitter defines fields for Twitter configuration type Twitter struct { ConsumerKey string ConsumerSecret string OAuthToken string OAuthTokenSecret string Filter []string } // Snapchat defines fields for Snapchat configuration type Snapchat struct { APIBase string UserAgent string UserName string GetConversations SnapchatEndpoint GetBlob SnapchatEndpoint MarkAsSeen SnapchatEndpoint } // SnapchatEndpoint defines fields for Snapchat endpoint configuration type SnapchatEndpoint struct { UUID string ClientAuthToken string RequestToken string Timestamp string } // C is the config handler var C Config // LoadConfig loads the configuration from given path func LoadConfig(path string) error { _, e := toml.DecodeFile(path, &C) return e } // WriteConfig writes the configuration to the given path func WriteConfig(path string) error { buf := new(bytes.Buffer) err := toml.NewEncoder(buf).Encode(C) if err != nil { return err } err = ioutil.WriteFile(path, buf.Bytes(), 0644) return err }