1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh
#
# Copyright (C) 2021 Etersoft
# Copyright (C) 2021 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-sh-altlinux
epm_repo_help()
{
get_help HELPCMD $SHAREDIR/epm-repo
cat <<EOF
Examples:
epm repo set p9
epm repo add autoimports
epm repo list
epm repo change yandex
EOF
}
epm_repo()
{
local CMD="$1"
[ -n "$CMD" ] && shift
case $CMD in
"-h"|"--help"|help) # HELPCMD: help
epm_repo_help
;;
""|list) # HELPCMD: list packages
load_helper epm-repolist
epm_repolist "$@"
;;
fix) # HELPCMD: fix paths in sources lists (ALT Linux only)
load_helper epm-repofix
epm_repofix "$@"
;;
change) # HELPCMD: <mirror>: switch sources to the mirror (supports etersoft/yandex/basealt): rewrite URLs to the specified server
load_helper epm-repofix
epm_repofix "$@"
;;
set) # HELPCMD: <mirror>: remove all existing sources and add mirror for the branch
epm repo rm all
epm addrepo "$@"
;;
switch) # HELPCMD: switch repo to <repo>: rewrite URLs to the repo
load_helper epm-repofix
epm_reposwitch "$@"
;;
enable) # HELPCMD: enable <repo>
load_helper epm-repoenable
epm_repoenable "$@"
;;
disable) # HELPCMD: disable <repo>
load_helper epm-repodisable
epm_repodisable "$@"
;;
addkey) # HELPCMD: add repository gpg key
load_helper epm-addrepo
epm_addkey "$@"
;;
clean) # HELPCMD: remove temp. repos (tasks and CD-ROMs)
# TODO: check for ALT
sudocmd apt-repo $dryrun clean
;;
save)
load_helper epm-reposave
epm_reposave "$@"
;;
restore)
load_helper epm-reposave
epm_reporestore "$@"
;;
reset)
load_helper epm-reposave
epm_reporeset "$@"
;;
add) # HELPCMD: add package repo (etersoft, autoimports, archive 2017/12/31); run with param to get list
load_helper epm-addrepo
epm_addrepo "$@"
;;
Add) # HELPCMD: like add, but do update after add
load_helper epm-addrepo
epm_addrepo "$@"
epm update
;;
rm|del|remove) # HELPCMD: remove repository from the sources lists (epm repo remove all for all)
load_helper epm-removerepo
epm_removerepo "$@"
;;
create) # HELPCMD: create (initialize) repo: [path] [name]
load_helper epm-repoindex
epm_repocreate "$@"
;;
index) # HELPCMD: index repo: [--init] [path] [name]
load_helper epm-repoindex
epm_repoindex "$@"
;;
pkgadd) # HELPCMD: add to <dir> applied <package-filename1> [<package-filename2>...]
load_helper epm-repopkg
epm_repo_pkgadd "$@"
;;
pkgupdate) # HELPCMD: replace in <dir> with new <package-filename1> [<package-filename2>...]
load_helper epm-repopkg
epm_repo_pkgupdate "$@"
;;
pkgdel) # HELPCMD: del from <dir> <package1> [<package2>...]
load_helper epm-repopkg
epm_repo_pkgdel "$@"
;;
*)
fatal "Unknown command $ epm repo '$CMD'"
;;
esac
}