From e2568dd62d8a1950c555f36cad469e86219c3db3 Mon Sep 17 00:00:00 2001 From: speedie Date: Mon, 13 May 2024 02:46:21 +0200 Subject: [PATCH] Add a docpp_make script, which creates a tarball release. --- CMakeLists.txt | 4 +- scripts/docpp_make | 156 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+), 3 deletions(-) create mode 100755 scripts/docpp_make diff --git a/CMakeLists.txt b/CMakeLists.txt index 53d444f..2b3ea6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,7 @@ # docpp CMakeLists.txt cmake_minimum_required(VERSION 3.1...3.29) -project( - docpp - VERSION 0.0.1 +project(docpp VERSION 0.0.1 DESCRIPTION "Simple C++ library for generating XML, HTML and CSS." HOMEPAGE_URL "https://speedie.site/docpp" LANGUAGES CXX diff --git a/scripts/docpp_make b/scripts/docpp_make new file mode 100755 index 0000000..63b97c2 --- /dev/null +++ b/scripts/docpp_make @@ -0,0 +1,156 @@ +#!/usr/bin/env bash +# docpp_make +# wrapper script for generating distro packages + +proj="docpp" +prefix="${prefix:-/usr}" +release="${release:-Release}" + +clean() { + rm -rf ./*.zst* ./*.tar* ./*.sig* *.PKGBUILD *.ebuild *.ebuild* build/ PKGBUILD +} + +check_correct_dir() { + [ ! -d ".git" ] && printf "Incorrect directory.\n" && exit 1 +} + +gen_pkg() { + [ "$(id -u)" = "0" ] && printf "Do not run as root.\n" && exit 1 + version="${version:-$(grep project CMakeLists.txt | sed "s/project(${proj} VERSION //g")}" + + if [ ! -e ".git" ]; then + printf "This is not a git repository.\n" + exit 1 + fi + + if [ ! -x "$(command -v git)" ]; then + printf "git is required for this action.\n" + exit 1 + fi + + rm -f ${proj} ${proj}-${version}.tar.gz ${proj}-${version}.PKGBUILD *.o *zst* + mkdir -p ${proj}-${version} + cp -rf $(git ls-files | cut -d/ -f1 | uniq) "${proj}-${version}" + tar -cf ${proj}-${version}.tar ${proj}-${version} + gzip ${proj}-${version}.tar + rm -rf ${proj}-${version} + + USER="$(whoami)" + printf "Is your GPG key '$(whoami)'?\n" + select yn in "Yes" "No"; do + case $yn in + Yes) USER="$(whoami)"; break ;; + No) printf "\n> "; read -r USER; break ;; + esac + done + + if [ -x "$(command -v gpg)" ]; then + gpg --detach-sign --yes --local-user "${USER}" ${proj}-${version}.tar.gz + fi + + if [ -x "$(command -v md5sum)" ]; then + md5sum *.tar.gz | cut -d ' ' -f 1 > ${proj}-${version}.tar.gz.md5 + fi + + if [ -x "$(command -v sha256sum)" ]; then + sha256sum *.tar.gz | cut -d ' ' -f 1 > ${proj}-${version}.tar.gz.sha256 + fi +} + +#gen_gentoo_pkg() { + #[ "$(id -u)" = "0" ] && printf "Do not run as root.\n" && exit 1 + #version="${version:-$(grep project CMakeLists.txt | sed "s/project(${proj} VERSION //g")}" +# + #USER="$(whoami)" + #printf "Is your GPG key '$(whoami)'?\n" + #select yn in "Yes" "No"; do + #case $yn in + #Yes) USER="$(whoami)"; break ;; + #No) printf "\n> "; read -r USER; break ;; + #esac + #done +# + #if [ -f "packaging/${proj}.ebuild" ]; then + #cp packaging/${proj}.ebuild ${proj}-${version}.ebuild +# + #if [ -x "$(command -v gpg)" ]; then + #gpg --detach-sign --yes --local-user "${USER}" ${proj}-${version}.ebuild + #fi +# + #if [ -x "$(command -v md5sum)" ]; then + #md5sum ${proj}-${version}.ebuild | cut -d ' ' -f 1 > ${proj}-${version}.ebuild.md5 + #fi +# + #if [ -x "$(command -v sha256sum)" ]; then + #sha256sum ${proj}-${version}.ebuild | cut -d ' ' -f 1 > ${proj}-${version}.ebuild.sha256 + #fi + #fi +#} + +#gen_arch_pkg() { + #[ "$(id -u)" = "0" ] && printf "Do not run as root.\n" && exit 1 + #[ ! -x "$(command -v makepkg)" ] && printf "makepkg required for this action.\n" && exit 1 +# + #rm -f PKGBUILD +# + #gen_pkg +# + #if [ -x "$(command -v md5sum)" ]; then + #MD5_SUM="$(md5sum ${proj}-${version}.tar.gz | cut -d ' ' -f 1)" + #fi +# + #if [ -x "$(command -v sha256sum)" ]; then + #SHA256_SUM="$(sha256sum ${proj}-${version}.tar.gz | cut -d ' ' -f 1)" + #fi +# + #sed "s/VERSION/${version}/g; s/MD5SUM/$MD5_SUM/g; s/SHA256SUM/$SHA256_SUM/g" packaging/${proj}.PKGBUILD > PKGBUILD +# + #makepkg -sfr --sign || exit 1 +# + #rm -rf pkg/ src/${proj}-${version}.tar.gz src/${proj}-${version}.tar.gz.sig src/${proj}-${version} +# + #mv PKGBUILD ${proj}-${version}.PKGBUILD +# + ## generate MD5 checksum + #[ -x "$(command -v md5sum)" ] && \ + #md5sum ${proj}-${version}-1-x86_64.pkg.tar.zst | cut -d ' ' -f 1 > ${proj}-${version}-1-x86_64.pkg.tar.zst.md5 +# + ## generate SHA256 checksum + #[ -x "$(command -v sha256sum)" ] && \ + #sha256sum ${proj}-${version}-1-x86_64.pkg.tar.zst | cut -d ' ' -f 1 > ${proj}-${version}-1-x86_64.pkg.tar.zst.sha256 +#} + +help() { +cat << EOF +$0 - Wrapper script for generating distro packages +End users should not run this script directly, this is for maintainers only. + +$0 clean Clean up the source tree +$0 dist Create a distro package for ${proj} +$0 help Print this help +EOF +} + +main() { + case "$1" in + "clean") action="clean" ;; + "dist") action="dist" ;; + "help") action="help" ;; + "") action="help" ;; + *) [ -z "$action" ] && action="wrong" ;; + esac + + check_correct_dir + + case "$action" in + "wrong") printf "Invalid action: %s\n" "$1" && exit 1 ;; + "clean") clean ;; + "help") help ;; + "dist") gen_pkg ;; + esac + + exit $? +} + +main "$@" +