/
Leprekon
/
packwrap
Обзор
Документация
Войти
/
Leprekon
/
packwrap
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
types/ebuild/proj
83 строки
3 KB
Sergei Chernov
Initial Import
14 июл 2026, 23:07
14 июл 2026, 23:07
b9ecd64
Код
Авторство
О чём код?
#!/usr/bin/env bash # type: ebuild — proj helper for packwrap init # detect_versions(): list versions found in project's .ebuild files # populate(): copy matching ebuild or generate stub TYPE="ebuild" TYPE_DESC="Gentoo ebuild + tarball" detect_versions() { local path="${PROJ_PATH:-.}" local f base ver while IFS= read -r -d '' f; do base="${f##*/}" base="${base%.ebuild}" if [[ "$base" =~ -([0-9].*)$ ]]; then echo "${BASH_REMATCH[1]}" fi done < <(find "$path" -name '*.ebuild' -print0 2>/dev/null) | sort -u } populate() { local ver_dir="${TYPE_DIR:?}" local ver="${VERSION:?}" local proj_name="${PROJECT_NAME:?}" local proj_path="${PROJ_PATH:-$ver_dir/../src}" # Load discovered metadata if available [ -n "$META_FILE" ] && [ -f "$META_FILE" ] && . "$META_FILE" local found found=$(find "$proj_path" -name "*${ver}.ebuild" -print -quit 2>/dev/null) if [ -n "$found" ]; then cp "$found" "$ver_dir/" echo " ebuild: copied $(basename "$found")" else # Format dependencies for ebuild (one per line with category) local ebuild_depends="" if [ -n "$PKG_DEPENDS" ]; then local dep mapped for dep in $PKG_DEPENDS; do case "$dep" in bzip2) mapped="app-arch/bzip2" ;; xz) mapped="app-arch/xz-utils" ;; gzip) mapped="app-arch/gzip" ;; tar) mapped="app-arch/tar" ;; cpio) mapped="app-arch/cpio" ;; zip) mapped="app-arch/zip" ;; unzip) mapped="app-arch/unzip" ;; p7zip) mapped="app-arch/7zip" ;; patch) mapped="sys-devel/patch" ;; ncurses) mapped="sys-libs/ncurses" ;; diffutils) mapped="sys-apps/diffutils" ;; findutils) mapped="sys-apps/findutils" ;; sed) mapped="sys-apps/sed" ;; grep) mapped="sys-apps/grep" ;; *) mapped="app-misc/${dep}" ;; esac ebuild_depends="${ebuild_depends} ${mapped}" done fi { echo "# Copyright 1999-2026 Gentoo Authors" echo "# Distributed under the terms of the GNU General Public License v2" echo "" echo "EAPI=8" echo "" echo "DESCRIPTION=\"${PKG_DESCRIPTION}\"" echo "HOMEPAGE=\"${PKG_HOMEPAGE}\"" echo "SRC_URI=\"\"" echo "LICENSE=\"${PKG_LICENSE}\"" echo "SLOT=\"0\"" echo "KEYWORDS=\"~amd64\"" if [ -n "$ebuild_depends" ]; then echo "DEPEND=\"${ebuild_depends} \"" echo "RDEPEND=\"\${DEPEND}\"" fi } > "$ver_dir/${proj_name}-${ver}.ebuild" echo " ebuild: generated stub ${proj_name}-${ver}.ebuild" fi }