summaryrefslogtreecommitdiff
path: root/sd_messages
diff options
context:
space:
mode:
Diffstat (limited to 'sd_messages')
-rw-r--r--sd_messages/.gitignore1
-rw-r--r--sd_messages/Makefile41
-rw-r--r--sd_messages/doc.go19
-rwxr-xr-xsd_messages/messages.go.gen17
4 files changed, 78 insertions, 0 deletions
diff --git a/sd_messages/.gitignore b/sd_messages/.gitignore
new file mode 100644
index 0000000..77a170f
--- /dev/null
+++ b/sd_messages/.gitignore
@@ -0,0 +1 @@
+/messages.go
diff --git a/sd_messages/Makefile b/sd_messages/Makefile
new file mode 100644
index 0000000..512d27c
--- /dev/null
+++ b/sd_messages/Makefile
@@ -0,0 +1,41 @@
+# Copyright (C) 2016-2017 Luke Shumaker <lukeshu@sbcglobal.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# header
+ifneq ($(topsrcdir),)
+include $(topsrcdir)/build-aux/Makefile.head.mk
+else
+srcdir = .
+.DEFAULT_GOAL = files.generate
+endif
+
+# body
+
+SD_MESSAGES_H ?= /usr/include/systemd/sd-messages.h
+
+files.src.gen += messages.go
+
+$(srcdir)/messages.go: $(srcdir)/messages.go.gen $(SD_MESSAGES_H)
+ cd $(@D) && ./$(<F) $(SD_MESSAGES_H) | gofmt > $(@F)
+
+# footer
+ifneq ($(topsrcdir),)
+include $(topsrcdir)/build-aux/Makefile.tail.mk
+else
+files.generate: $(files.src.gen)
+maintainer-clean:
+ rm -f -- $(files.src.gen) $(files.src.int)
+.PHONY: files.generate maintainer-clean
+.DELETE_ON_ERROR:
+endif
diff --git a/sd_messages/doc.go b/sd_messages/doc.go
new file mode 100644
index 0000000..c2967aa
--- /dev/null
+++ b/sd_messages/doc.go
@@ -0,0 +1,19 @@
+// Copyright 2017 Luke Shumaker
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:generate make
+
+// Package sd_messages is a table of constant message IDs understood
+// by journald.
+package sd_messages
diff --git a/sd_messages/messages.go.gen b/sd_messages/messages.go.gen
new file mode 100755
index 0000000..423829b
--- /dev/null
+++ b/sd_messages/messages.go.gen
@@ -0,0 +1,17 @@
+#!/usr/bin/sed -rnf
+1apackage foo
+1aconst (
+/^#define\s+SD_MESSAGE_/ {
+
+ s/^#define\s+SD_MESSAGE_(\S*)/\1 =/
+
+ s/SD_ID128_MAKE\(/ID128{0x/
+ s/,/,0x/g
+ s/\)/}/
+
+ s/(^|_)([A-Z])([A-Z]*)/\U\2\L\3/g
+
+ p
+}
+/^$/p
+$a)