|
|
- #!/bin/env sh
-
- # dummypkg - Create a dummy Arch Linux package
- #
- # Copyright (C) 2023 Pekka Helenius <pekka.helenius@fjordtek.com>
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- . /usr/share/makepkg/util/message.sh
- colorize
-
- if [[ -z $1 ]]
- then
- error "Provide a package name"
- exit 1
- fi
-
- PKG=$1
- PKGBUILD_FILE="PKGBUILD.tmp"
- PACMAN_FILE="pacman.tmp"
-
- msg "Preparing dummy package: $PKG"
-
- description="dummy package"
- version="0.1"
- release="1"
- provides=($PKG)
-
- purge() {
-
- msg "Cleaning up..."
-
- pkgfile_prefix="$PKG-$version-$release-any.pkg.tar"
- pkgfile=$(find . -maxdepth 1 -type f -iname "${pkgfile_prefix}*" | head -1)
-
- [[ -f ${pkgfile} ]] && rm -f ${pkgfile}
- [[ -f ${PKGBUILD_FILE} ]] && rm -f ${PKGBUILD_FILE}
- [[ -f ${PACMAN_FILE} ]] && rm -f ${PACMAN_FILE}
- [[ -d src ]] && rm -rf src
- [[ -d pkg ]] && rm -rf pkg
-
- exit $1
-
- }
-
- remote_info() {
- pacman_info=$(pacman -Si $PKG > $PACMAN_FILE)
- if [[ $? -eq 0 ]]
- then
-
- # Description
- description=$(echo $(grep -oP "^Description.*: \K.*(?=.*)" $PACMAN_FILE) "("$description")")
-
- # Provides
- provides_pkgs=($(grep -oP "^Provides.*: \K[^A-Z]*(?=[^A-Z]*)" $PACMAN_FILE))
- provides=(${provides[@]} ${provides_pkgs[@]})
-
- # Version
- version_full=$(grep -oP "^Version.*: \K.*(?=.*)" $PACMAN_FILE)
- version=$(echo $version_full | awk '{sub(/-.*/,"",$0); print $0}')
- release=$(echo $version_full | awk '{sub(/.*-/,"",$0); print $0}')
-
- fi
-
- }
-
- trap "purge 1" SIGINT SIGKILL SIGABRT SIGTERM
-
- msg "Setting version number and provided packages information..."
- remote_info
-
- msg2 "Description: ${description}"
- msg2 "Provides: ${provides[*]}"
- msg2 "Version: $version"
- msg2 "Release: $release"
-
- cat <<EOF > ${PKGBUILD_FILE}
- pkgname="${PKG}"
- pkgver=$version
- pkgrel=$release
- pkgdesc="${description}"
- arch=(any)
- provides=(${provides[@]})
- groups=(dummy)
- EOF
-
- if [[ ! -f ${PKGBUILD_FILE} ]]
- then
- error "No PKGBUILD found"
- exit 1
- fi
-
- makepkg -Cfi -p ${PKGBUILD_FILE}
- purge 0
|