generate-ucl.sh revision 295262
1295262Sgjb#!/bin/sh
2295262Sgjb#
3295262Sgjb# $FreeBSD: projects/release-pkg/release/packages/generate-ucl.sh 295262 2016-02-04 15:32:03Z 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
37295262Sgjb		*_lib32_development)
38295262Sgjb			outname="${outname%%_lib32_development}"
39295262Sgjb			_descr="32-bit Libraries, Development Files"
40295262Sgjb			pkgdeps="${outname}"
41295262Sgjb			;;
42295262Sgjb		*_lib32_debug)
43295262Sgjb			outname="${outname%%_lib32_debug}"
44295262Sgjb			_descr="32-bit Libraries, Debugging Symbols"
45295262Sgjb			pkgdeps="${outname}"
46295262Sgjb			;;
47295262Sgjb		*_lib32_profile)
48295262Sgjb			outname="${outname%%_lib32_profile}"
49295262Sgjb			_descr="32-bit Libraries, Profiling"
50295262Sgjb			pkgdeps="${outname}"
51295262Sgjb			;;
52295262Sgjb		*_lib32)
53295262Sgjb			outname="${outname%%_lib32}"
54295262Sgjb			_descr="32-bit Libraries"
55295262Sgjb			pkgdeps="${outname}"
56295262Sgjb			;;
57295262Sgjb		*_development)
58295262Sgjb			outname="${outname%%_development}"
59295262Sgjb			_descr="Development Files"
60295262Sgjb			pkgdeps="${outname}"
61295262Sgjb			;;
62295262Sgjb		*_profile)
63295262Sgjb			outname="${outname%%_profile}"
64295262Sgjb			_descr="Profiling Libraries"
65295262Sgjb			pkgdeps="${outname}"
66295262Sgjb			;;
67295262Sgjb		*_debug)
68295262Sgjb			outname="${outname%%_debug}"
69295262Sgjb			_descr="Debugging Symbols"
70295262Sgjb			pkgdeps="${outname}"
71295262Sgjb			;;
72295262Sgjb		*_manuals)
73295262Sgjb			outname="${origname}"
74295262Sgjb			pkgdeps="runtime"
75295262Sgjb			;;
76295262Sgjb		runtime)
77295262Sgjb			outname="runtime"
78295262Sgjb			uclfile="${uclfile}"
79295262Sgjb			;;
80295262Sgjb		${origname})
81295262Sgjb			pkgdeps="runtime"
82295262Sgjb			;;
83295262Sgjb		debug|development|lib32|profile)
84295262Sgjb			uclfile="${outname##*}${uclfile}"
85295262Sgjb			;;
86295262Sgjb		*)
87295262Sgjb			uclfile="${outname##*}${origname}"
88295262Sgjb			outname="${outname##*}${origname}"
89295262Sgjb			;;
90295262Sgjb	esac
91295262Sgjb
92295262Sgjb	outname="${outname%%_*}"
93295262Sgjb
94295262Sgjb	desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)"
95295262Sgjb	comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)"
96295262Sgjb
97295262Sgjb	uclsource="${srctree}/release/packages/${outname}.ucl"
98295262Sgjb	if [ ! -e "${uclsource}" ]; then
99295262Sgjb		uclsource="${srctree}/release/packages/template.ucl"
100295262Sgjb	fi
101295262Sgjb
102295262Sgjb	if [ ! -z "${debug}" ]; then
103295262Sgjb		echo ""
104295262Sgjb		echo "==============================================================="
105295262Sgjb		echo "DEBUG:"
106295262Sgjb		echo "_descr=${_descr}"
107295262Sgjb		echo "outname=${outname}"
108295262Sgjb		echo "origname=${origname}"
109295262Sgjb		echo "srctree=${srctree}"
110295262Sgjb		echo "uclfile=${uclfile}"
111295262Sgjb		echo "desc=${desc}"
112295262Sgjb		echo "comment=${comment}"
113295262Sgjb		echo "cp ${uclsource} -> ${uclfile}"
114295262Sgjb		echo "==============================================================="
115295262Sgjb		echo ""
116295262Sgjb		echo ""
117295262Sgjb		echo ""
118295262Sgjb	fi
119295262Sgjb
120295262Sgjb	[ -z "${comment}" ] && comment="${outname} package"
121295262Sgjb	[ ! -z "${_descr}" ] && comment="${comment} (${_descr})"
122295262Sgjb	[ -z "${desc}" ] && desc="${outname} package"
123295262Sgjb
124295262Sgjb	cp "${uclsource}" "${uclfile}"
125295262Sgjb	cap_arg="$(make -C ${srctree}/etc -VCAP_MKDB_ENDIAN)"
126295262Sgjb	pwd_arg="$(make -C ${srctree}/etc -VPWD_MKDB_ENDIAN)"
127295262Sgjb	sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \
128295262Sgjb		-e "s/%PKGNAME%/${origname}/" \
129295262Sgjb		-e "s/%COMMENT%/${comment}/" \
130295262Sgjb		-e "s/%DESC%/${desc}/" \
131295262Sgjb		-e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \
132295262Sgjb		-e "s/%PWD_MKDB_ENDIAN%/${pwd_arg}/g" \
133295262Sgjb		-e "s/%PKGDEPS%/${pkgdeps}/" \
134295262Sgjb		${uclfile}
135295262Sgjb	return 0
136295262Sgjb}
137295262Sgjb
138295262Sgjbmain "${@}"
139