1295262Sgjb#!/bin/sh
2295262Sgjb#
3295262Sgjb# $FreeBSD: stable/11/release/packages/generate-ucl.sh 318249 2017-05-12 18:37:08Z gjb $
4295262Sgjb#
5295262Sgjb
6295262Sgjbmain() {
7295262Sgjb	desc=
8295262Sgjb	comment=
9295262Sgjb	debug=
10295262Sgjb	uclsource=
11295262Sgjb	while getopts "do:s:u:" arg; do
12295262Sgjb		case ${arg} in
13295262Sgjb		d)
14295262Sgjb			debug=1
15295262Sgjb			;;
16295262Sgjb		o)
17295262Sgjb			outname="${OPTARG}"
18295262Sgjb			origname="${OPTARG}"
19295262Sgjb			;;
20295262Sgjb		s)
21295262Sgjb			srctree="${OPTARG}"
22295262Sgjb			;;
23295262Sgjb		u)
24295262Sgjb			uclfile="${OPTARG}"
25295262Sgjb			;;
26295262Sgjb		*)
27295262Sgjb			echo "Unknown argument"
28295262Sgjb			;;
29295262Sgjb		esac
30295262Sgjb	done
31295262Sgjb
32295262Sgjb	shift $(( ${OPTIND} - 1 ))
33295262Sgjb
34295262Sgjb	outname="$(echo ${outname} | tr '-' '_')"
35295262Sgjb
36295262Sgjb	case "${outname}" in
37296531Sgjb		runtime)
38296531Sgjb			outname="runtime"
39296531Sgjb			uclfile="${uclfile}"
40296531Sgjb			;;
41296531Sgjb		runtime_manuals)
42296531Sgjb			outname="${origname}"
43296531Sgjb			pkgdeps="runtime"
44296531Sgjb			;;
45296531Sgjb		runtime_*)
46296531Sgjb			outname="${origname}"
47296531Sgjb			uclfile="${outname##*}${uclfile}"
48296531Sgjb			pkgdeps="runtime"
49296531Sgjb			_descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)"
50296531Sgjb			;;
51318249Sgjb		jail_*)
52318249Sgjb			outname="${origname}"
53318249Sgjb			uclfile="${outname##*}${uclfile}"
54318249Sgjb			pkgdeps="runtime"
55318249Sgjb			_descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)"
56318249Sgjb			;;
57295262Sgjb		*_lib32_development)
58295262Sgjb			outname="${outname%%_lib32_development}"
59295262Sgjb			_descr="32-bit Libraries, Development Files"
60295262Sgjb			pkgdeps="${outname}"
61295262Sgjb			;;
62295262Sgjb		*_lib32_debug)
63295262Sgjb			outname="${outname%%_lib32_debug}"
64295262Sgjb			_descr="32-bit Libraries, Debugging Symbols"
65295262Sgjb			pkgdeps="${outname}"
66295262Sgjb			;;
67295262Sgjb		*_lib32_profile)
68295262Sgjb			outname="${outname%%_lib32_profile}"
69295262Sgjb			_descr="32-bit Libraries, Profiling"
70295262Sgjb			pkgdeps="${outname}"
71295262Sgjb			;;
72295262Sgjb		*_lib32)
73295262Sgjb			outname="${outname%%_lib32}"
74295262Sgjb			_descr="32-bit Libraries"
75295262Sgjb			pkgdeps="${outname}"
76295262Sgjb			;;
77295262Sgjb		*_development)
78295262Sgjb			outname="${outname%%_development}"
79295262Sgjb			_descr="Development Files"
80295262Sgjb			pkgdeps="${outname}"
81295262Sgjb			;;
82295262Sgjb		*_profile)
83295262Sgjb			outname="${outname%%_profile}"
84295262Sgjb			_descr="Profiling Libraries"
85295262Sgjb			pkgdeps="${outname}"
86295262Sgjb			;;
87295262Sgjb		*_debug)
88295262Sgjb			outname="${outname%%_debug}"
89295262Sgjb			_descr="Debugging Symbols"
90295262Sgjb			pkgdeps="${outname}"
91295262Sgjb			;;
92295262Sgjb		${origname})
93295262Sgjb			pkgdeps="runtime"
94295262Sgjb			;;
95295262Sgjb		*)
96295262Sgjb			uclfile="${outname##*}${origname}"
97295262Sgjb			outname="${outname##*}${origname}"
98295262Sgjb			;;
99295262Sgjb	esac
100295262Sgjb
101295262Sgjb	outname="${outname%%_*}"
102295262Sgjb
103295262Sgjb	desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)"
104295262Sgjb	comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)"
105295262Sgjb
106295262Sgjb	uclsource="${srctree}/release/packages/${outname}.ucl"
107295262Sgjb	if [ ! -e "${uclsource}" ]; then
108295262Sgjb		uclsource="${srctree}/release/packages/template.ucl"
109295262Sgjb	fi
110295262Sgjb
111295262Sgjb	if [ ! -z "${debug}" ]; then
112295262Sgjb		echo ""
113295262Sgjb		echo "==============================================================="
114295262Sgjb		echo "DEBUG:"
115295262Sgjb		echo "_descr=${_descr}"
116295262Sgjb		echo "outname=${outname}"
117295262Sgjb		echo "origname=${origname}"
118295262Sgjb		echo "srctree=${srctree}"
119295262Sgjb		echo "uclfile=${uclfile}"
120295262Sgjb		echo "desc=${desc}"
121295262Sgjb		echo "comment=${comment}"
122295262Sgjb		echo "cp ${uclsource} -> ${uclfile}"
123295262Sgjb		echo "==============================================================="
124295262Sgjb		echo ""
125295262Sgjb		echo ""
126295262Sgjb		echo ""
127295262Sgjb	fi
128295262Sgjb
129295262Sgjb	[ -z "${comment}" ] && comment="${outname} package"
130295262Sgjb	[ ! -z "${_descr}" ] && comment="${comment} (${_descr})"
131295262Sgjb	[ -z "${desc}" ] && desc="${outname} package"
132295262Sgjb
133295262Sgjb	cp "${uclsource}" "${uclfile}"
134295262Sgjb	cap_arg="$(make -C ${srctree}/etc -VCAP_MKDB_ENDIAN)"
135295262Sgjb	pwd_arg="$(make -C ${srctree}/etc -VPWD_MKDB_ENDIAN)"
136295262Sgjb	sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \
137295262Sgjb		-e "s/%PKGNAME%/${origname}/" \
138295262Sgjb		-e "s/%COMMENT%/${comment}/" \
139295262Sgjb		-e "s/%DESC%/${desc}/" \
140295262Sgjb		-e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \
141295262Sgjb		-e "s/%PWD_MKDB_ENDIAN%/${pwd_arg}/g" \
142295262Sgjb		-e "s/%PKGDEPS%/${pkgdeps}/" \
143295262Sgjb		${uclfile}
144295262Sgjb	return 0
145295262Sgjb}
146295262Sgjb
147295262Sgjbmain "${@}"
148