#!/bin/sh # Copyright (C) 2016, 2020, 2023 Etersoft # Copyright (C) 2016 Danil Mikhailov <danil@etersoft.ru> # Copyright (C) 2016, 2020, 2023 Vitaly Lipatov <lav@etersoft.ru> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 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 Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # load_helper epm-install # default repo EPM_KORINF_REPO_URL="https://updates.etersoft.ru/pub/Korinf" __epm_korinf_site_mask() { local MASK="$1" local archprefix="" # short hack to install needed package rhas "$MASK" "[-_]" || MASK="$MASK[-_][0-9]" # set arch for Korinf compatibility [ "$($DISTRVENDOR -a)" = "x86_64" ] && archprefix="x86_64/" local URL="$EPM_KORINF_REPO_URL/$archprefix$($DISTRVENDOR -e)" if ! eget --check "$URL" ; then tURL="$EPM_KORINF_REPO_URL/$archprefix$($DISTRVENDOR --vendor-name)/$($DISTRVENDOR --repo-name)" docmd eget --check "$tURL" && URL="$tURL" fi echo "$URL/$MASK*.$PKGFORMAT" } __epm_korinf_list() { local MASK="$1" MASK="$(__epm_korinf_site_mask "$MASK")" showcmd eget --list "$MASK" eget --list "$MASK" | sort } __epm_korinf_install() { # skip interactive for install eepm from stdin if inputisatty && [ -n "$PROGDIR" ] && [ "$1" != "eepm" ] ; then [ -n "$non_interactive" ] || interactive="--interactive" fi local pkg local pkg_urls='' for pkg in $* ; do pkg_urls="$pkg_urls $(__epm_korinf_site_mask "$pkg")" done # due Error: Can't use epm call from the piped script #epm install $(__epm_korinf_site_mask "$PACKAGE") pkg_names='' pkg_files='' epm_install } epm_epm_install_help() { echo "epm ei [packages] - install packages from EPM based Korinf repository" get_help HELPCMD $SHAREDIR/epm-epm_install cat <<EOF Default Korinf repository: $EPM_KORINF_REPO_URL Examples: epm ei [epm|eepm] - install latest eepm (default action) epm <package1> [<package2>...] - install package(s) from default Korinf repo epm http://someurl.ru <package> - install package(s) from the URL epm --list <package mask> - list available packages by mask EOF } epm_epm_install() { if is_url "$1" ; then EPM_KORINF_REPO_URL="$1" info "Using $EPM_KORINF_REPO_URL repo ..." shift fi case "$1" in ""|epm|eepm) # install epm by default __epm_korinf_install "eepm" return ;; -h|--help) # HELPCMD: help epm_epm_install_help return ;; --list) # HELPCMD: list only packages shift __epm_korinf_list "$1" return ;; esac __epm_korinf_install "$@" }