summaryrefslogtreecommitdiff
path: root/build-aux/get-dscname
blob: 34a1b081f3e20d83e2bc1efd6d87ea4a9a22cd93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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