epm-epm_install 2.85 KB
Newer Older
1 2
#!/bin/sh

3
# Copyright (C) 2016, 2020  Etersoft
4
# Copyright (C) 2016  Danil Mikhailov <danil@etersoft.ru>
5
# Copyright (C) 2016, 2020  Vitaly Lipatov <lav@etersoft.ru>
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#
# 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/>.
#

21
load_helper epm-install
22

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
# copied from play.d/common.sh

check_url_is_accessible()
{
    local res
    epm tool eget --check "$1"
}

# update URL variable
update_url_if_need_mirrored()
{
    local MIRROR="$1"
    local SECONDURL
    check_url_is_accessible "$URL" && return
    if [ -n "$MIRROR" ] ; then
        check_url_is_accessible "$MIRROR" && URL="$MIRROR"
        return
    fi

    MIRROR="https://mirror.eterfund.ru"
    SECONDURL="$(echo "$URL" | sed -e "s|^.*://|$MIRROR/|")"
    check_url_is_accessible "$SECONDURL" && URL="$SECONDURL" && return

    MIRROR="https://mirror.eterfund.org"
    SECONDURL="$(echo "$URL" | sed -e "s|^.*://|$MIRROR/|")"
    check_url_is_accessible "$SECONDURL" && URL="$SECONDURL" && return

}


53 54
__epm_korinf_site_mask() {
    local MASK="$1"
55
    local archprefix=""
56 57
    # short hack to install needed package
    rhas "$MASK" "[-_]" || MASK="$MASK[-_][0-9]"
58
    # set arch for Korinf compatibility
59
    [ "$($DISTRVENDOR -a)" = "x86_64" ] && archprefix="x86_64/"
60 61 62
    URL="http://updates.etersoft.ru/pub/Korinf"
    update_url_if_need_mirrored
    echo "$URL/$archprefix$($DISTRVENDOR -e)/$MASK*.$($DISTRVENDOR -p)"
63 64 65 66
}

__epm_korinf_list() {
    local MASK="$1"
67 68 69
    MASK="$(__epm_korinf_site_mask "$MASK")"
    showcmd eget --list "$MASK"
    eget --list "$MASK" | sort
70
}
71

72

73
__epm_korinf_install() {
74
    local PACKAGE="$1"
75 76 77
    # due Error: Can't use epm call from the piped script
    #epm install $(__epm_korinf_site_mask "$PACKAGE")
    pkg_names='' pkg_files='' pkg_urls="$(__epm_korinf_site_mask "$PACKAGE")" epm_install
78
}
79

80
epm_epm_install() {
81
    local i
82 83
    local pkglist="$*"

84
    # install epm by default
85
    if [ -z "$pkglist" ] || [ "$pkglist" = "epm" ] || [ "$pkglist" = "eepm" ]; then
86 87 88
#        if [ "$($DISTRVENDOR -s)" = "alt" ] ; then
#            pkglist="distro_info eepm"
#        else
89
            pkglist="eepm"
90
#        fi
91
    fi
92 93 94

    case "$pkglist" in
        --list*)
95 96
            shift
            __epm_korinf_list "$1"
97 98 99 100
            return
            ;;
    esac

101 102 103 104
    for i in $pkglist ; do
        __epm_korinf_install $i
    done
}