Files
projman/openbsd/build-package-bsd.sh

86 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# create-openbsd-pkg.sh
PKG_NAME="projman"
WORK_DIR=projman_openbsd
VERSION=$(grep Version ../projman.tcl | grep -oE '\b[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}\b')
RELEASE=$(grep "# Release" ../projman.tcl | grep -oE '[0-9A-Za-z]+$')
BUILD_DATE=$(date +%d%m%Y%H%M%S)
TXT="# Build: ${BUILD_DATE}"
echo "$VERSION, $RELEASE, $BUILD_DATE"
PKG_VERSION="${VERSION}${RELEASE}"
PKG_FULLNAME="${PKG_NAME}-${PKG_VERSION}"
mkdir -p ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin
mkdir -p ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman
mkdir -p ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/man/man1
cp -r ../lib ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp -r ../theme ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp ../projman.tcl ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman
cp ../changelog-gen.tcl ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/changeloggen
cp ../tkregexp.tcl ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/tkregexp
cp ../LICENSE ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp ../README.md ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp ../CHANGELOG ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp ../projman.desktop ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
cp ../projman.png ${WORK_DIR}/${PKG_FULLNAME}/usr/local/share/projman/
sed -i "/# Build:.*/c$TXT" ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman
# ./changelog-gen.tcl --project-name projman --project-version ${VERSION} --project-release ${RELEASE} --out-file debian/changelog --deb --last
sed -i "s+^set\ dir(lib)+set\ dir(lib)\ /usr/local/share/projman/lib ;#+g" ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman
sed -i "s+\[pwd\]+/usr/local/share/projman+g" ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman
# cat > ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman << 'EOF'
# #!/bin/sh
# exec /usr/local/bin/wish8.6 "/usr/local/share/projman/projman.tcl" "$@"
# EOF
# chmod +x ${WORK_DIR}/${PKG_FULLNAME}/usr/local/bin/projman
cat > ${WORK_DIR}/${PKG_FULLNAME}/+CONTENTS << EOF
@name ${PKG_NAME}-${PKG_VERSION}
@version ${PKG_VERSION}
@depend lang/tk:tk-*:tcl-*
@depend devel/tcllib:tcllib-*:tcl-*
@depend devel/tklib:tklib-*:tcl-*
@comment Editor for Tcl/Tk and other languages.
@arch amd64
@wantlib pthread
@ignore
@cwd /usr/local
EOF
(cd ${WORK_DIR}/${PKG_FULLNAME}/usr/local && find . -type f | sed 's/^\.\///') | while read file; do
echo "$file" >> ${WORK_DIR}/${PKG_FULLNAME}/+CONTENTS
done
cat >> ${WORK_DIR}/${PKG_FULLNAME}/+CONTENTS << 'EOF'
@exec mkdir -p /var/log/projman 2>/dev/null || true
@exec echo "Package ${PKG_NAME} installed successfully"
@unexec rm -rf /var/log/projman 2>/dev/null || true
EOF
echo "ProjMan is a code editor writen in TCL/Tk" > ${WORK_DIR}/${PKG_FULLNAME}/+COMMENT
cat > ${WORK_DIR}/${PKG_FULLNAME}/+DESC << 'EOF'
ProjMan (also known as "Tcl/Tk Project Manager") is a feature-rich editor
for programming in Tcl/Tk and other languages.
It includes a source editor with syntax highlighting and
code navigation, a context-sensitive help system, Git support, a
pseudo-terminal, image viewer and much more.
Supported languages for highlighting and navigation:
Tcl/Tk, GO, Perl, Python, Ruby, Shell (BASH), Markdown, YAML (Ansible), Lua.
EOF
(cd ${WORK_DIR} && tar -czf ../../../${PKG_FULLNAME}.tgz ${PKG_FULLNAME}/)
echo "Package created: ${PKG_FULLNAME}.tgz"
rm -rf ${WORK_DIR}