summaryrefslogtreecommitdiff
path: root/types.go
diff options
context:
space:
mode:
authorKatolaZ <katolaz@freaknet.org>2017-07-12 08:53:12 +0100
committerKatolaZ <katolaz@freaknet.org>2017-07-12 08:53:12 +0100
commitb3ca09586c23831d9f089ab8a023580c403f8e55 (patch)
tree60bd13a7efe3a2ea210890fb9b486d6d68a90409 /types.go
parent32b09256150d139e77d04533f28d0c26a32b12bd (diff)
reorganised types and modules
Diffstat (limited to 'types.go')
-rw-r--r--types.go79
1 files changed, 79 insertions, 0 deletions
diff --git a/types.go b/types.go
new file mode 100644
index 0000000..b14a103
--- /dev/null
+++ b/types.go
@@ -0,0 +1,79 @@
+package main
+
+import (
+ "golang.org/x/crypto/openpgp"
+)
+
+const (
+ SCORSH_ERR_NO_FILE = -(1 << iota)
+ SCORSH_ERR_KEYRING
+ SCORSH_ERR_NO_REPO
+ SCORSH_ERR_NO_COMMIT
+ SCORSH_ERR_SIGNATURE
+)
+
+// the SCORSHmsg type represents messages received from the spool and
+// sent to workers
+type SCORSHmsg struct {
+ repo string
+ branch string
+ old_rev string
+ new_rev string
+}
+
+
+type SCORSHcmd struct {
+ URL string
+ hash string
+}
+
+type SCORSHtag struct {
+ TagName string
+ Keyrings []string
+ Commands []SCORSHcmd
+}
+
+// Configuration of a worker
+type SCORSHworker_cfg struct {
+ Name string `yaml:"w_name"`
+ Repos []string `yaml:"w_repos"`
+ Folder string `yaml:"w_folder"`
+ Logfile string `yaml:"w_logfile"`
+ Tagfile string `yaml:"w_tagfile"`
+ Keyrings []string `yaml:"w_keyrings"`
+}
+
+// State of a worker
+type SCORSHworker_state struct {
+ Tags map[string]SCORSHtag
+ Keys map[string]openpgp.KeyRing
+ Chan chan SCORSHmsg
+}
+
+// The type SCORSHworker represents the configuration and state of a
+// worker
+type SCORSHworker struct {
+ SCORSHworker_cfg
+ SCORSHworker_state
+}
+
+// Configuration of the master
+type SCORSHmaster_cfg struct {
+ Spooldir string `yaml:"s_spooldir"`
+ Logfile string `yaml:"s_logfile"`
+ LogPrefix string `yaml:"s_logprefix"`
+ Workers []SCORSHworker `yaml:"s_workers"`
+}
+
+// State of the master
+type SCORSHmaster_state struct {
+ Spooler chan SCORSHmsg
+ Repos map[string][]*SCORSHworker
+}
+
+// The type SCORSHmaster represents the configuration and state of the
+// master
+type SCORSHmaster struct {
+ SCORSHmaster_cfg
+ SCORSHmaster_state
+}