App-BS

 view release on metacpan or  search on metacpan

script/buildpkg.sh  view on Meta::CPAN


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

get_pkgbuild() {
  (pkg="$1"
   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() {
  (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 $?)
}

build_pkg() {
  pkg="$1"
  target="$2"

  sudo cp -vaf "$target/"{makepkg.conf,pacman.conf} "$CHROOT/root/etc/"
  sudo cp -vaf "$target/"{makepkg.conf,pacman.conf} "$CHROOT/nameless/etc/"

  startts="$(epoch)"
  localbuilt=()

  cd "$BS_ROOT/pkgbuild/$pkg" || return $?

  say "Adding keys included in $pkg PKGBUILD repo..."
  gpg --verbose --import keys/pgp/*.asc
  
  say "Building $pkg in CHROOT at $CHROOT..."
  makechrootpkg -Cunc -- -CLAfisc

  echo "Updating $pkg .SRCINFO..."
  makepkg --printsrcinfo > ".SRCINFO"
 
  endts=$(epoch)
  
  localbuilt=$("$(makepkg --packagelist)")
  built+=${localbuilt[@]}

  echo "[$scriptname@$startts-$(endts) build manifest:]"
  echo "  >${localbuilt[*]}"
  echo "[/$scriptname@$startts-$(endts) build manifest]"

  return $?
}

for pkg in "${queue[@]}"; do
  repopkgstr=($(resolve_pkgbase "$pkg"))
  repopkg=($(parse_repopkgstr "$repopkgstr"))

  if [[ ! -d "$pkg" ]]; then
    get_pkgbuild "$pkg" "$target"
  else
    sync_pkgbuild "$pkg" "$target"
  fi

  for target in "${targets[@]}"; do
   target_build_pkg_res=()

   while read line; do
      [[ $dbgmode -eq 0 ]] || echo "$line"
      
      [[ -z "${line##  >*}" ]] || continue
      target_build_pkg_res+=("${line##  >}")

      echo "Adding $pkg package archives to $BS_REPO..."
      cd $PKGDEST
      bs-repoadd "${target_build_pkg_res[@]}"
      cd "$BS_ROOT/pkgbuild/$pkg"
    done < <(build_pkg "$pkg" "$target")
  done
  
  cd "$BS_ROOT/pkgbuild"
done



( run in 0.829 second using v1.01-cache-2.11-cpan-df04353d9ac )