1#!/usr/bin/awk -f
2#---------------------------------------------
3#
4#   generate-script.awk
5#
6#   Simple AWK script to generate the XDG scripts, substituting the
7#   necessary text from other source files.
8#
9#   Copyright 2006, Benedikt Meurer <benny@xfce.org>
10#
11#   LICENSE:
12#
13#   Permission is hereby granted, free of charge, to any person obtaining a
14#   copy of this software and associated documentation files (the "Software"),
15#   to deal in the Software without restriction, including without limitation
16#   the rights to use, copy, modify, merge, publish, distribute, sublicense,
17#   and/or sell copies of the Software, and to permit persons to whom the
18#   Software is furnished to do so, subject to the following conditions:
19#
20#   The above copyright notice and this permission notice shall be included
21#   in all copies or substantial portions of the Software.
22#
23#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24#   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26#   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
27#   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
28#   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29#   OTHER DEALINGS IN THE SOFTWARE.
30#
31#---------------------------------------------
32
33
34# All lines from the input file should be printed
35{
36	print
37}
38
39
40# The text from ../LICENSE should be inserted after
41# the "#   LICENSE:" line
42/^#   LICENSE:/ {
43	while (getline < "../LICENSE")
44		print
45	close ("../LICENSE")
46}
47
48
49# Insert the examples text from the .txt file
50# after the "cat << _MANUALPAGE" line
51/^cat << _MANUALPAGE/ {
52	# determine the name of the .txt file
53	txtfile = FILENAME
54	sub(/\.in$/, ".txt", txtfile)
55
56	# read the .txt file content
57	for (txtfile_print = 0; getline < txtfile; ) {
58#		if (match ($0, /^Examples/) != 0) {
59#			# print everything starting at the "Examples" line
60#			txtfile_print = 1
61#		}
62#		if (txtfile_print != 0) {
63#			print $0
64#		}
65                gsub("`","'")
66                gsub("—","-")
67                print $0
68	}
69	close (txtfile)
70}
71
72
73# Insert the usage text from the .txt file
74# after the "cat << _USAGE" line
75/^cat << _USAGE/ {
76	# determine the name of the .txt file
77	txtfile = FILENAME
78	sub(/\.in$/, ".txt", txtfile)
79
80	# read the .txt file content
81	for (txtfile_print = 0; getline < txtfile; ) {
82		if (match ($0, /^Name/) != 0) {
83			# skip empty line after "Name"
84			getline < txtfile
85
86			# from now on, print everything
87			txtfile_print = 1
88		}
89		else if (match ($0, /^Description/) != 0) {
90			# stop at "Description"
91			break
92		}
93		else if (txtfile_print != 0) {
94	                gsub("—","-")
95			print $0
96		}
97	}
98	close (txtfile)
99}
100
101
102# Insert the xdg-utils-common.in content after
103# the "#@xdg-utils-common@" line
104/^#@xdg-utils-common@/ {
105	while (getline < "xdg-utils-common.in")
106		print
107	close ("xdg-utils-common.in")
108}
109
110
111