summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt10
-rw-r--r--xK-version1
-rw-r--r--xS/.gitignore1
-rw-r--r--xS/Makefile13
-rw-r--r--xS/xS-gen-version.awk14
-rw-r--r--xS/xS.adoc57
-rw-r--r--xS/xS.go2
7 files changed, 73 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e57eb3..2263af0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,11 @@
# Ubuntu 18.04 LTS and OpenBSD 6.4
cmake_minimum_required (VERSION 3.10)
-project (xK VERSION 1.5.0
+
+file (READ xK-version project_version)
+configure_file (xK-version xK-version.tag COPYONLY)
+string (STRIP "${project_version}" project_version)
+
+project (xK VERSION "${project_version}"
DESCRIPTION "IRC daemon, bot, TUI client and its web frontend" LANGUAGES C)
# Options
@@ -18,9 +23,6 @@ if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-function")
endif ()
-# Version
-set (project_version "${PROJECT_VERSION}")
-
# Try to append commit ID if it follows a version tag. It might be nicer if
# we could also detect dirty worktrees but that's very hard to get right.
# If we didn't need this for CPack, we could use add_custom_command to generate
diff --git a/xK-version b/xK-version
new file mode 100644
index 0000000..bc80560
--- /dev/null
+++ b/xK-version
@@ -0,0 +1 @@
+1.5.0
diff --git a/xS/.gitignore b/xS/.gitignore
index 4f7b84d..c07d73d 100644
--- a/xS/.gitignore
+++ b/xS/.gitignore
@@ -1,2 +1,3 @@
/xS
/xS-replies.go
+/xS.1
diff --git a/xS/Makefile b/xS/Makefile
index f0f662d..92716ac 100644
--- a/xS/Makefile
+++ b/xS/Makefile
@@ -2,16 +2,15 @@
.SUFFIXES:
AWK = env LC_ALL=C awk
-outputs = xS xS-version.go xS-replies.go
+outputs = xS xS-replies.go xS.1
all: $(outputs)
-xS: xS.go xS-version.go xS-replies.go
- go build -o $@
-xS-version.go: ../liberty/tools/cmake-parser.awk \
- xS-gen-version.awk ../CMakeLists.txt
- $(AWK) -f ../liberty/tools/cmake-parser.awk \
- -f xS-gen-version.awk ../CMakeLists.txt > $@
+xS: xS.go ../xK-version xS-replies.go
+ go build -ldflags "-X 'main.projectVersion=$$(cat ../xK-version)'" -o $@
xS-replies.go: xS-gen-replies.awk xS-replies
$(AWK) -f xS-gen-replies.awk xS-replies > $@
+xS.1: ../xK-version ../liberty/tools/asciiman.awk xS.adoc
+ env "asciidoc-release-version=$$(cat ../xK-version)" \
+ $(AWK) -f ../liberty/tools/asciiman.awk xS.adoc > $@
clean:
rm -f $(outputs)
diff --git a/xS/xS-gen-version.awk b/xS/xS-gen-version.awk
deleted file mode 100644
index 1312a63..0000000
--- a/xS/xS-gen-version.awk
+++ /dev/null
@@ -1,14 +0,0 @@
-# xS-gen-version.awk: extract version information from the CMake script
-#
-# Copyright (c) 2022, Přemysl Eric Janouch <p@janouch.name>
-# SPDX-License-Identifier: 0BSD
-
-Command == "project" {
- for (i = 2; i in Args; i++)
- if (Args[i] == "VERSION") {
- print "package main"
- print ""
- print "const projectVersion = `" Args[++i] "`"
- exit
- }
-}
diff --git a/xS/xS.adoc b/xS/xS.adoc
new file mode 100644
index 0000000..c2154f4
--- /dev/null
+++ b/xS/xS.adoc
@@ -0,0 +1,57 @@
+xS(1)
+=====
+:doctype: manpage
+:manmanual: xK Manual
+:mansource: xK {release-version}
+
+Name
+----
+xS - IRC daemon
+
+Synopsis
+--------
+*xS* [_OPTION_]...
+
+Description
+-----------
+*xS* is a basic IRC daemon for single-server networks, suitable for testing
+and private use. When run without a configuration file, it will start listening
+on the standard port 6667 and the "any" address.
+
+Options
+-------
+*-debug*::
+ Do not daemonize, print more information on the standard error stream
+ to help debug various issues.
+
+*-systemd*::
+ Log using the format specified in *sd-daemon*(3).
+
+*-h*, *-help*::
+ Display a help message and exit.
+
+*-version*::
+ Output version information and exit.
+
+*-writedefaultcfg*::
+ Write a configuration file with defaults, show its path and exit.
++
+The file will be appropriately commented.
+
+Files
+-----
+*xS* follows the XDG Base Directory Specification.
+
+_~/.config/xS/xS.conf_::
+_/etc/xdg/xS/xS.conf_::
+ The daemon's configuration file. Use the *-writedefaultcfg* option
+ to create a new one for editing.
+
+Reporting bugs
+--------------
+Use https://git.janouch.name/p/xK to report bugs, request features,
+or submit pull requests.
+
+See also
+--------
+*sd-daemon*(3)
diff --git a/xS/xS.go b/xS/xS.go
index feefb5c..25db005 100644
--- a/xS/xS.go
+++ b/xS/xS.go
@@ -42,6 +42,8 @@ import (
const projectName = "xS"
+var projectVersion = "?"
+
var debugMode = false
// --- Logging -----------------------------------------------------------------