summaryrefslogtreecommitdiff
path: root/app-eselect
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-28 19:27:52 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-28 19:27:52 +0000
commit4b1be5ef874aaeb61a2116048e0c2312e53f8c69 (patch)
treee2f0118b102bf7e7ad852582d410adb43f13b035 /app-eselect
parent4418da21bd05d610a3450f4aa75481785ca372a0 (diff)
gentoo auto-resync : 28:02:2025 - 19:27:52next
Diffstat (limited to 'app-eselect')
-rw-r--r--app-eselect/Manifest.gzbin6704 -> 6869 bytes
-rw-r--r--app-eselect/eselect-guile/Manifest3
-rw-r--r--app-eselect/eselect-guile/eselect-guile-20250224.ebuild19
-rw-r--r--app-eselect/eselect-guile/files/guile-20250224.eselect147
-rw-r--r--app-eselect/eselect-guile/metadata.xml9
5 files changed, 178 insertions, 0 deletions
diff --git a/app-eselect/Manifest.gz b/app-eselect/Manifest.gz
index 4b3fddc331ac..3665e84470e3 100644
--- a/app-eselect/Manifest.gz
+++ b/app-eselect/Manifest.gz
Binary files differ
diff --git a/app-eselect/eselect-guile/Manifest b/app-eselect/eselect-guile/Manifest
new file mode 100644
index 000000000000..b325ca0927f8
--- /dev/null
+++ b/app-eselect/eselect-guile/Manifest
@@ -0,0 +1,3 @@
+AUX guile-20250224.eselect 3837 BLAKE2B ec6bde67b30169e7ba3513e3d1d47cc2ef9bc13739fa34a81dc76f5a0c00f8299823d538e0fbc75ad7c9a7da34267497f3d39bbc3c1680ac8afd296b2da1bf29 SHA512 a9ab1f5c03ffa8b13c64ac2ec438b6f4226367dfcee26c5d02b12868f7eeafe06815e2a6d78fc2a0b20edf2f0a680821b8a25772059b42d73d85e9804d3edfe0
+EBUILD eselect-guile-20250224.ebuild 546 BLAKE2B fdddb395bbb3d072e60200f5dc9d05da14cd08271351984b252a8d1984a637b62a0ce225a1c10b6da55a8eb10bd63ed75335d162ea2dd5c02861ccdb6abebf15 SHA512 4b0e2f052c0e8087b8e66421ac9ab7fac94d16282bbe2c91a4d8695a8557b15ff8163abbb48131769d4403b62df75962169a6ebdb17a516356415da90f7e634f
+MISC metadata.xml 287 BLAKE2B a5d87cd5b45deceb4c11e1daad0f08b86a605c38c22e5baf532d02a91348da05872326860e92a0ba500a2c0ba6c40e380c1846bbe3ee571b88dc1aef74c56ee4 SHA512 bf03bb378c312b1915b60e50187c7bdcba534047366497335b4289b8fab8641093925a1935f7a239a2479ce1aed792d7789be54cf1a8525aa56bb57a7ccb5d1d
diff --git a/app-eselect/eselect-guile/eselect-guile-20250224.ebuild b/app-eselect/eselect-guile/eselect-guile-20250224.ebuild
new file mode 100644
index 000000000000..ec4f89cdd23b
--- /dev/null
+++ b/app-eselect/eselect-guile/eselect-guile-20250224.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="GNU Guile eselect module"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
+
+RDEPEND="app-admin/eselect"
+
+src_install() {
+ insinto /usr/share/eselect/modules/
+ newins "${FILESDIR}"/guile-"${PV}".eselect guile.eselect
+}
diff --git a/app-eselect/eselect-guile/files/guile-20250224.eselect b/app-eselect/eselect-guile/files/guile-20250224.eselect
new file mode 100644
index 000000000000..e0cd774077c1
--- /dev/null
+++ b/app-eselect/eselect-guile/files/guile-20250224.eselect
@@ -0,0 +1,147 @@
+# -*-eselect-*- vim: ft=eselect
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU GPL version 2 or later
+
+DESCRIPTION="Manage the selected GNU Guile installation"
+MAINTAINER="scheme@gentoo.org"
+VERSION="20250224"
+
+# List of all tools all GNU Guile versions install. Some GNU Guile versions
+# don't have some of the tools (1.8 lacks 'guild'), but that's fine.
+ALL_GUILE_TOOLS=(
+ guile{,-{config,snarf,tools}}
+ guild
+)
+
+
+find_versions() {
+ local f
+ for f in "${EROOT}"/usr/share/guile-data/*; do
+ [[ -d "${f}" ]] && echo "${f##*/}"
+ done
+}
+
+
+# Checks whether guile, guile-config, guile-snarf, guild and guile-tools exist
+# and are not symlinks. Execute before filesystem operations.
+safety_check() {
+ local f
+ # XXX: Tools listing.
+ for f in "${ALL_GUILE_TOOLS[@]}"; do
+ f="${EROOT}"/usr/bin/"${f}"
+ [[ -L "${f}" || ! -e "${f}" ]] \
+ || die -q "!!! File \"${f}\" exists and is not a symbolic link! \
+Giving up, so that I don't trample anything."
+ done
+}
+
+
+# Usage: set_version USER_SELECTION
+# If USER_SELECTION is a number, treat it as an index into the version list,
+# otherwise treat it as a version.
+set_version() {
+ local sel="$1"
+ if is_number "${sel}"; then
+ local versions=( $(find_versions) )
+ sel="${versions[sel - 1]}"
+ fi
+
+ [[ -z "${sel}" || ! -d "${EROOT}"/usr/share/guile-data/"${sel}" ]] \
+ && die -q "Target \"$1\" does not appear to be valid"
+
+ safety_check
+
+ local tool
+ for tool in "${ALL_GUILE_TOOLS[@]}"; do
+ rm -f "${EROOT}"/usr/bin/"${tool}"
+ if [[ -x "${EROOT}"/usr/bin/"${tool}-${sel}" ]]; then
+ ln -s "${tool}-${sel}" "${EROOT}"/usr/bin/"${tool}"
+ fi
+ done
+}
+
+# Usage: get_current FALLBACK
+# Fallback defaults to UNDEFINED, which should be sufficiently invalid for
+# [[ = ]].
+get_current() {
+ local current_lnk
+ if current_lnk="$(readlink "${EROOT}"/usr/bin/guile)"; then
+ echo "${current_lnk#guile-}"
+ else
+ echo "${1:-UNDEFINED}"
+ fi
+}
+
+
+### Actions ###
+describe_list() { echo "List installed GNU Guile versions"; }
+do_list() {
+ local vers=( $(find_versions) )
+ local ver current i
+
+ current="$(get_current)"
+ for (( i = 0; i < ${#vers[@]}; i++ )); do
+ [[ "${current}" == "${vers[i]}" ]] \
+ && vers[i]="$(highlight_marker "${vers[i]}")"
+ done
+
+ write_list_start "Available GNU Guile versions"
+ write_numbered_list \
+ -m "(none installed; emerge a dev-scheme/guile today!)" \
+ "${vers[@]}"
+}
+
+describe_show() { echo "Get currently selected GNU Guile version"; }
+do_show() {
+ write_list_start "Currently selected GNU Guile version"
+ write_kv_list_entry "$(get_current '(none selected)')" ""
+}
+
+describe_set() { echo "Select an active version of GNU Guile"; }
+describe_set_parameters() { echo "<target>"; }
+describe_set_options() {
+ echo "target : Guile version or number (from 'list' action)"
+}
+do_set() {
+ [[ -z $1 ]] && die -q "You didn't name your choice!"
+ [[ $# -gt 1 ]] && die -q "Too many parameters"
+ set_version "$1"
+}
+
+describe_unset() { echo "Remove GNU Guile selection"; }
+do_unset() {
+ safety_check
+ for tool in "${ALL_GUILE_TOOLS[@]}"; do
+ rm -f "${EROOT}"/usr/bin/"${tool}"
+ done
+}
+
+describe_update() { echo "Perform post-install/remove selection"; }
+do_update() {
+ local vers=( $(find_versions) )
+
+ if [[ ${#vers[@]} -eq 0 ]]; then
+ # No more versions left. Clean up after ourselves and leave
+ write_warning_msg "No GNU Guile versions installed. Unsetting."
+ do_unset
+ return
+ fi
+
+ if [[ -L "${EROOT}"/usr/bin/guile
+ && -e "${EROOT}"/usr/bin/guile ]]; then
+ # The user made a choice, and the choice is still valid. Respect it.
+ return
+ fi
+
+ # Set latest.
+ IFS=$'\n' LC_COLLATE=C vers=( $(sort -V <<< "${vers[*]}") )
+ set_version "${vers[-1]}"
+}
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "VERSION=\""
+# time-stamp-format: "%Y%02m%02d"
+# time-stamp-end: "\""
+# time-stamp-time-zone: t
+# End:
diff --git a/app-eselect/eselect-guile/metadata.xml b/app-eselect/eselect-guile/metadata.xml
new file mode 100644
index 000000000000..2d56aa51838e
--- /dev/null
+++ b/app-eselect/eselect-guile/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>scheme@gentoo.org</email>
+ <name>Gentoo Scheme Project</name>
+ </maintainer>
+ <stabilize-allarches/>
+</pkgmetadata>