App-BS

 view release on metacpan or  search on metacpan

script/makepkgs.sh  view on Meta::CPAN

#!/usr/bin/env bash

set -x;
startts=$(date +%s)
failures=()

mkdir -p $BS_ROOT/{pkgbuild,pkgmeta,pkgdest,log,src,srcpkg}

parse_repopkgstr() {
  local pkgrepostr="$1"
  local pkgrepo="${pkgrepostr%%/*}";
  local pkgstr="${pkgrepostr##"$pkgrepo/"}"

  if [[ -z "${pkgrepostr//$pkgrepo/}" ]]; then
    pkgrepo=""
  fi

  #echo "$pkgrepo"
  echo "$pkgstr"
}

resolve_pkgbase() {
  pkgstr=$1
  pacinfo="$(pacinfo "$pkgstr" <&-)"

  [[ $err -ne 0 ]] && return $err

  $(perl -e 'use v5.40; my (%matches) = $ARGV[0] =~ /(Base|Repository):\s+([a-z0-9\-]+)/g; say join "\n", map { "export pkg" . lc substr($_, 0, 4) . "=$matches{$_}" } keys %matches' "$pacinfo")

  [[ $? -ne 0 ]] && return $?
  echo "$pkgrepo/$pkgbase"
}

get_pkgbuild() {
  local pkg="$1"
  #local target="$2"
  
  (cd $BS_ROOT/pkgbuild

   pkgctl repo clone --protocol=https "$pkg"
   [[ "$?" -eq 0 ]] && return 0

   aur fetch -r "$pkg"
   [[ "$?" -eq 0 ]] && return 0
  
   return $?)
}

sync_pkgbuild() {
  local pkg="$1"

  (cd $pkg || return $?
  
   git stash -a
   git pull --all)
}

#sync_pkgbuild() {
#  (pkg="$1"
#   target="$2"
#   currbranch="$(git branch)" 
#  
#  cd "$BS_ROOT/pkgbuild/$pkg"
#
#   git switch -c buildpkg-$(epoch)
#   git add -A
#   git commit -S -m "Unsynced changed prior to running buildpkg.sh"
#
#   if [[ ! -d "$BS_ROOT/pkgmeta/$(basename $pkg)" ]]; then
#     git clone --bare . "$BS_ROOT/pkgmeta/$(basename $pkg)"
#     git remote add bs-pkgmeta "$BS_ROOT/pkgmeta/$(basename $pkg)"
#   else
#     git push bs-pkgmeta --all
#     [[ $? -ne 0 ]] && git push --all "$BS_ROOT/pkgmeta/$(basename $pkg)"
#   fi
#
#   git pull --all -f --rebase
#   git mergetool
#   git rebase --continue
#
#   return $?)
#}

run_makepkg() {
  local pkg="$1"

  (cd "$BS_ROOT/pkgbuild/$pkgbase" || continue



( run in 1.309 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )