From 22605b345467d3f2b2fc70829eb53bd6fa788591 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Thu, 30 Jan 2020 01:07:41 +0000 Subject: [PATCH] dhall configuration experiment --- .gitignore | 4 ++- cfg/discord.dhall | 1 + cfg/gitea.dhall | 3 +++ cfg/github.dhall | 1 + cfg/mastodon.dhall | 10 ++++++++ cfg/package.dhall | 10 ++++++++ cfg/paseto.dhall | 3 +++ cfg/patreon.dhall | 9 +++++++ cfg/reddit.dhall | 3 +++ cfg/twitter.dhall | 9 +++++++ cmd/mi-cfg/main.go | 64 ++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 1 + go.sum | 13 ++++++++++ 13 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 cfg/discord.dhall create mode 100644 cfg/gitea.dhall create mode 100644 cfg/github.dhall create mode 100644 cfg/mastodon.dhall create mode 100644 cfg/package.dhall create mode 100644 cfg/paseto.dhall create mode 100644 cfg/patreon.dhall create mode 100644 cfg/reddit.dhall create mode 100644 cfg/twitter.dhall create mode 100644 cmd/mi-cfg/main.go diff --git a/.gitignore b/.gitignore index e53046a..d51a58f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .env bin/ -var/ \ No newline at end of file +var/ +mi.dhall +mi.normal.dhall diff --git a/cfg/discord.dhall b/cfg/discord.dhall new file mode 100644 index 0000000..1a1a996 --- /dev/null +++ b/cfg/discord.dhall @@ -0,0 +1 @@ +{ Type = { Webhook : Text }, default = { Webhook = "" } } diff --git a/cfg/gitea.dhall b/cfg/gitea.dhall new file mode 100644 index 0000000..3013ce4 --- /dev/null +++ b/cfg/gitea.dhall @@ -0,0 +1,3 @@ +{ Type = { Instance : Text, Token : Text } +, default = { Instance = "", Token = "" } +} diff --git a/cfg/github.dhall b/cfg/github.dhall new file mode 100644 index 0000000..f38a123 --- /dev/null +++ b/cfg/github.dhall @@ -0,0 +1 @@ +{ Type = { Token : Text }, default = { Token = "" } } diff --git a/cfg/mastodon.dhall b/cfg/mastodon.dhall new file mode 100644 index 0000000..e8c685a --- /dev/null +++ b/cfg/mastodon.dhall @@ -0,0 +1,10 @@ +{ Type = + { AppID : Text + , AppSecret : Text + , Account : Text + , Instance : Text + , Token : Text + } +, default = + { AppID = "", AppSecret = "", Account = "", Instance = "", Token = "" } +} diff --git a/cfg/package.dhall b/cfg/package.dhall new file mode 100644 index 0000000..cff70c8 --- /dev/null +++ b/cfg/package.dhall @@ -0,0 +1,10 @@ +{ Discord = ./discord.dhall +, Gitea = ./gitea.dhall +, Github = ./github.dhall +, Mastodon = ./mastodon.dhall +, Mi = ./mi.dhall +, Paseto = ./paseto.dhall +, Patreon = ./patreon.dhall +, Reddit = ./reddit.dhall +, Twitter = ./twitter.dhall +} diff --git a/cfg/paseto.dhall b/cfg/paseto.dhall new file mode 100644 index 0000000..ecc6864 --- /dev/null +++ b/cfg/paseto.dhall @@ -0,0 +1,3 @@ +{ Type = { Public : Text, Private : Text } +, default = { Public = "", Private = "" } +} diff --git a/cfg/patreon.dhall b/cfg/patreon.dhall new file mode 100644 index 0000000..c53c762 --- /dev/null +++ b/cfg/patreon.dhall @@ -0,0 +1,9 @@ +{ Type = + { ClientID : Text + , ClientSecret : Text + , AccessToken : Text + , RefreshToken : Text + } +, default = + { ClientID = "", ClientSecret = "", AccessToken = "", RefreshToken = "" } +} diff --git a/cfg/reddit.dhall b/cfg/reddit.dhall new file mode 100644 index 0000000..1f1c5a5 --- /dev/null +++ b/cfg/reddit.dhall @@ -0,0 +1,3 @@ +{ Type = { AppID : Text, AppSecret : Text, Username : Text, Password : Text } +, default = { AppID = "", AppSecret = "", Username = "", Password = "" } +} diff --git a/cfg/twitter.dhall b/cfg/twitter.dhall new file mode 100644 index 0000000..0a96216 --- /dev/null +++ b/cfg/twitter.dhall @@ -0,0 +1,9 @@ +{ Type = + { ConsumerToken : Text + , ConsumerSecret : Text + , ApiKey : Text + , ApiSecret : Text + } +, default = + { ConsumerToken = "", ConsumerSecret = "", ApiKey = "", ApiSecret = "" } +} diff --git a/cmd/mi-cfg/main.go b/cmd/mi-cfg/main.go new file mode 100644 index 0000000..af0a5cc --- /dev/null +++ b/cmd/mi-cfg/main.go @@ -0,0 +1,64 @@ +package main + +import ( + "io/ioutil" + + "github.com/kr/pretty" + "github.com/philandstuff/dhall-golang" +) + +type Config struct { + Discord struct { + Webhook string `json:"Webhook"` + } `json:"Discord"` + Gitea struct { + Instance string `json:"Instance"` + Token string `json:"Token"` + } `json:"Gitea"` + Github struct { + Token string `json:"Token"` + } `json:"Github"` + Mastodon struct { + Account string `json:"Account"` + AppID string `json:"AppID"` + AppSecret string `json:"AppSecret"` + Instance string `json:"Instance"` + Token string `json:"Token"` + } `json:"Mastodon"` + Paseto struct { + Private string `json:"Private"` + Public string `json:"Public"` + } `json:"Paseto"` + Patreon struct { + AccessToken string `json:"AccessToken"` + ClientID string `json:"ClientID"` + ClientSecret string `json:"ClientSecret"` + RefreshToken string `json:"RefreshToken"` + } `json:"Patreon"` + Reddit struct { + AppID string `json:"AppID"` + AppSecret string `json:"AppSecret"` + Password string `json:"Password"` + Username string `json:"Username"` + } `json:"Reddit"` + RethinkDBURL string `json:"RethinkDBURL"` + Twitter struct { + APIKey string `json:"ApiKey"` + APISecret string `json:"ApiSecret"` + ConsumerSecret string `json:"ConsumerSecret"` + ConsumerToken string `json:"ConsumerToken"` + } `json:"Twitter"` +} + +func main() { + var cfg Config + data, err := ioutil.ReadFile("mi.dhall") + if err != nil { + panic(err) + } + err = dhall.Unmarshal([]byte(data), &cfg) + if err != nil { + panic(err) + } + pretty.Println(cfg) +} diff --git a/go.mod b/go.mod index 263d887..5e7cb95 100644 --- a/go.mod +++ b/go.mod @@ -20,6 +20,7 @@ require ( github.com/o1egl/paseto v1.0.0 github.com/o1egl/paseto/v2 v2.0.0-20191203150002-5f81bc3bcb3e github.com/olekukonko/tablewriter v0.0.4 // indirect + github.com/philandstuff/dhall-golang v0.0.0-20200128213416-5ebf1681a323 github.com/turnage/graw v0.0.0-20191224200831-a592320d5bc9 golang.org/x/crypto v0.0.0-20200109152110-61a87790db17 golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 diff --git a/go.sum b/go.sum index ddcb131..85cf769 100644 --- a/go.sum +++ b/go.sum @@ -62,6 +62,7 @@ github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870 h1:E2s37DuLxFhQD github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/primitive v0.0.0-20190214200932-673f57e7b1b5/go.mod h1:Tm6t8LbdhSCXNfpjTwoL1mdjCnyKHkMyf6PqQXo7Or8= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -94,6 +95,7 @@ github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/U github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hullerob/go.farbfeld v0.0.0-20181222022525-3661193c725f/go.mod h1:mQEoc766DxPTAwQ54neWTK/lFqIeSO7OU6bqZsceglw= github.com/jaytaylor/html2text v0.0.0-20190408195923-01ec452cbe43 h1:jTkyeF7NZ5oIr0ESmcrpiDgAfoidCBF4F5kJhjtaRwE= github.com/jaytaylor/html2text v0.0.0-20190408195923-01ec452cbe43/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= @@ -115,6 +117,7 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.5-0.20190402064358-634a59d12406/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54= @@ -138,6 +141,9 @@ github.com/o1egl/paseto/v2 v2.0.0-20191203150002-5f81bc3bcb3e/go.mod h1:0ldCNnSW github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/otiai10/copy v1.0.2/go.mod h1:c7RpqBkwMom4bYTSkLSym4VSJz/XtncWRAj/J4PEIMY= @@ -148,6 +154,8 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/philandstuff/dhall-golang v0.0.0-20200128213416-5ebf1681a323 h1:DVsOoVMWIJsE7wXsTWXcyNuf51w5g1yKsniajwnpzfw= +github.com/philandstuff/dhall-golang v0.0.0-20200128213416-5ebf1681a323/go.mod h1:nYfzcKjqq6UDCStpXV6UxRwD0HX9IK9z/MuHmHghbEY= github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= @@ -202,6 +210,7 @@ github.com/turnage/graw v0.0.0-20191224200831-a592320d5bc9 h1:hGzA+rD6+ZhT23x6lG github.com/turnage/graw v0.0.0-20191224200831-a592320d5bc9/go.mod h1:aAkq4I/q1izZSSwHvzhDn9NA+eGxgTSuibwP3MZRlQY= github.com/turnage/redditproto v0.0.0-20151223012412-afedf1b6eddb h1:qR56NGRvs2hTUbkn6QF8bEJzxPIoMw3Np3UigBeJO5A= github.com/turnage/redditproto v0.0.0-20151223012412-afedf1b6eddb/go.mod h1:GyqJdEoZSNoxKDb7Z2Lu/bX63jtFukwpaTP9ZIS5Ei0= +github.com/ugorji/go v1.1.5-0.20190603013658-a2c9fa250719/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= github.com/velour/chat v0.0.0-20180713122344-fd1d1606cb89/go.mod h1:ejwOYCjnDMyO5LXFXRARQJGBZ6xQJZ3rgAHE5drSuMM= github.com/xlzd/gotp v0.0.0-20181030022105-c8557ba2c119/go.mod h1:/nuTSlK+okRfR/vnIPqR89fFKonnWPiZymN5ydRJkX8= github.com/xtaci/kcp-go v5.4.11+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= @@ -230,6 +239,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d h1:g9qWBGx4puODJTMVyoPrpoxPFgVGd+z1DZwjfRu4d0I= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg= @@ -252,6 +262,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20180828065106-d99a578cf41b h1:cmOZLU2i7CLArKNViO+ZCQ47wqYFyKEIpbGWp+b6Uoc= golang.org/x/sys v0.0.0-20180828065106-d99a578cf41b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= @@ -280,10 +291,12 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fatih/pool.v2 v2.0.0 h1:xIFeWtxifuQJGk/IEPKsTduEKcKvPmhoiVDGpC40nKg= gopkg.in/fatih/pool.v2 v2.0.0/go.mod h1:8xVGeu1/2jr2wm5V9SPuMht2H5AEmf5aFMGSQixtjTY= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/mxpv/patreon-go.v1 v1.0.0-20171031001022-1d2f253ac700 h1:ymnLBRNALxuok6al+nlPJxfSa3yc2SZc5N21svHQtys= gopkg.in/mxpv/patreon-go.v1 v1.0.0-20171031001022-1d2f253ac700/go.mod h1:IZaw6NfbSsGszLfPbo9LLlxLIx17eMHWe4cxpM8wUMk= gopkg.in/rethinkdb/rethinkdb-go.v6 v6.0.0 h1:x+tVYhL4QUktgB8Dvspq0ZmnPYMO/5tYEvhX5KBm47M= gopkg.in/rethinkdb/rethinkdb-go.v6 v6.0.0/go.mod h1:Z9NgaOLdqIZS9v3EFLP/S0VdloWSW+2zEN6dllUSCVQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/tucnak/telebot.v2 v2.0.0-20190415090633-8c1c512262f2/go.mod h1:+//wyPtHTeW2kfyEBwB05Hqnxev7AGrsLIyylSH++KU= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=