generate-ucl.sh revision 295262
1#!/bin/sh 2# 3# $FreeBSD: projects/release-pkg/release/packages/generate-ucl.sh 295262 2016-02-04 15:32:03Z gjb $ 4# 5 6main() { 7 desc= 8 comment= 9 debug= 10 uclsource= 11 while getopts "do:s:u:" arg; do 12 case ${arg} in 13 d) 14 debug=1 15 ;; 16 o) 17 outname="${OPTARG}" 18 origname="${OPTARG}" 19 ;; 20 s) 21 srctree="${OPTARG}" 22 ;; 23 u) 24 uclfile="${OPTARG}" 25 ;; 26 *) 27 echo "Unknown argument" 28 ;; 29 esac 30 done 31 32 shift $(( ${OPTIND} - 1 )) 33 34 outname="$(echo ${outname} | tr '-' '_')" 35 36 case "${outname}" in 37 *_lib32_development) 38 outname="${outname%%_lib32_development}" 39 _descr="32-bit Libraries, Development Files" 40 pkgdeps="${outname}" 41 ;; 42 *_lib32_debug) 43 outname="${outname%%_lib32_debug}" 44 _descr="32-bit Libraries, Debugging Symbols" 45 pkgdeps="${outname}" 46 ;; 47 *_lib32_profile) 48 outname="${outname%%_lib32_profile}" 49 _descr="32-bit Libraries, Profiling" 50 pkgdeps="${outname}" 51 ;; 52 *_lib32) 53 outname="${outname%%_lib32}" 54 _descr="32-bit Libraries" 55 pkgdeps="${outname}" 56 ;; 57 *_development) 58 outname="${outname%%_development}" 59 _descr="Development Files" 60 pkgdeps="${outname}" 61 ;; 62 *_profile) 63 outname="${outname%%_profile}" 64 _descr="Profiling Libraries" 65 pkgdeps="${outname}" 66 ;; 67 *_debug) 68 outname="${outname%%_debug}" 69 _descr="Debugging Symbols" 70 pkgdeps="${outname}" 71 ;; 72 *_manuals) 73 outname="${origname}" 74 pkgdeps="runtime" 75 ;; 76 runtime) 77 outname="runtime" 78 uclfile="${uclfile}" 79 ;; 80 ${origname}) 81 pkgdeps="runtime" 82 ;; 83 debug|development|lib32|profile) 84 uclfile="${outname##*}${uclfile}" 85 ;; 86 *) 87 uclfile="${outname##*}${origname}" 88 outname="${outname##*}${origname}" 89 ;; 90 esac 91 92 outname="${outname%%_*}" 93 94 desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)" 95 comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)" 96 97 uclsource="${srctree}/release/packages/${outname}.ucl" 98 if [ ! -e "${uclsource}" ]; then 99 uclsource="${srctree}/release/packages/template.ucl" 100 fi 101 102 if [ ! -z "${debug}" ]; then 103 echo "" 104 echo "===============================================================" 105 echo "DEBUG:" 106 echo "_descr=${_descr}" 107 echo "outname=${outname}" 108 echo "origname=${origname}" 109 echo "srctree=${srctree}" 110 echo "uclfile=${uclfile}" 111 echo "desc=${desc}" 112 echo "comment=${comment}" 113 echo "cp ${uclsource} -> ${uclfile}" 114 echo "===============================================================" 115 echo "" 116 echo "" 117 echo "" 118 fi 119 120 [ -z "${comment}" ] && comment="${outname} package" 121 [ ! -z "${_descr}" ] && comment="${comment} (${_descr})" 122 [ -z "${desc}" ] && desc="${outname} package" 123 124 cp "${uclsource}" "${uclfile}" 125 cap_arg="$(make -C ${srctree}/etc -VCAP_MKDB_ENDIAN)" 126 pwd_arg="$(make -C ${srctree}/etc -VPWD_MKDB_ENDIAN)" 127 sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \ 128 -e "s/%PKGNAME%/${origname}/" \ 129 -e "s/%COMMENT%/${comment}/" \ 130 -e "s/%DESC%/${desc}/" \ 131 -e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \ 132 -e "s/%PWD_MKDB_ENDIAN%/${pwd_arg}/g" \ 133 -e "s/%PKGDEPS%/${pkgdeps}/" \ 134 ${uclfile} 135 return 0 136} 137 138main "${@}" 139