summaryrefslogtreecommitdiff
path: root/build-aux/get-dscname
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/get-dscname')
-rwxr-xr-xbuild-aux/get-dscname36
1 files changed, 36 insertions, 0 deletions
diff --git a/build-aux/get-dscname b/build-aux/get-dscname
new file mode 100755
index 0000000..34a1b08
--- /dev/null
+++ b/build-aux/get-dscname
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# build-aux/get-dscname - Get a file's self-described filename
+#
+# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+if [ $# -ne 1 ]; then
+ echo "$0: expected exactly 1 argument"
+ exit 2
+fi
+
+if [[ $1 == */Documentation/* ]] && [[ "$(sed 1q -- "$1")" == 'NAME' ]]; then
+ sed -n '
+ 2{
+ s,[/.],_,g;
+ s,^\s*_,Documentation/,;
+ s,$,.txt,;
+
+ p;
+ q;
+ }
+ ' -- "$1"
+else
+ sed -n '
+ 1,3{
+ /^\#!/d;
+ /^<!--$/d;
+ /-\*- .* -\*-/d;
+ s,[/*\# ]*,,;
+ s/ - .*//;
+
+ p;
+ q;
+ }
+ ' -- "$1"
+fi