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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/sh
#
# Copyright (C) 2019, 2022, 2024 Etersoft
# Copyright (C) 2019, 2022, 2024 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/>.
#
epm_full_upgrade_help()
{
get_help HELPCMD $SHAREDIR/epm-full_upgrade
message '
You can run with --interactive if you can skip some steps interactively.
Also you can comment out full_upgrade parts in /etc/eepm/eepm.conf config.
Examples:
epm full-upgrade [--auto]
epm full-upgrade [--interactive]
epm full-upgrade --no-flatpak
'
}
epm_full_upgrade()
{
while [ -n "$1" ] ; do
case "$1" in
"-h"|"--help"|"help") # HELPCMD: help
epm_full_upgrade_help
return
;;
"--interactive") # HELPCMD: ask before every step
;;
"--ipfs") # HELPCMD: use IPFS for epm play
ipfs='--ipfs'
;;
"--no-epm-play") # HELPCMD: skip epm play during full upgrade
full_upgrade_no_epm_play=1
;;
"--no-flatpak") # HELPCMD: skip flatpak update during full upgrade
full_upgrade_no_flatpak=1
;;
"--no-snap") # HELPCMD: skip snap update during full upgrade
full_upgrade_no_snap=1
;;
"--no-kernel-update") # HELPCMD: skip kernel update during full upgrade
full_upgrade_no_kernel_update=1
;;
"--no-clean") # HELPCMD: no clean after upgrade
full_upgrade_no_clean=1
;;
"--no-epm-update-check") # HELPCMD: skip epm update during full upgrade
full_upgrade_no_epm_update_check=1
;;
esac
shift
done
confirm_action()
{
[ -n "$interactive" ] || return 0
local response
# call with a prompt string or use a default
read -r -p "${1:-$(eval_gettext 'Are you sure? [Y/n]')} " response
case $response in
[yY][eE][sS]|[yY]|"")
true
;;
*)
false
;;
esac
}
confirm_action "Update repository info? [Y/n]" || full_upgrade_no_update=1
if [ -z "$full_upgrade_no_update" ] ; then
[ -n "$quiet" ] || echo
docmd epm update || fatal "repository updating is failed."
fi
if [ "$BASEDISTRNAME" = "alt" ] ; then
confirm_action "Do upgrade epm? [Y/n]" || full_upgrade_no_epm_update_check=1
if [ -z "$full_upgrade_no_epm_update_check" ] ; then
[ -n "$quiet" ] || echo
epm_version_before=$(epmq eepm &>/dev/null)
docmd epm $dryrun install eepm &>/dev/null
epm_version_after=$(epmq eepm &>/dev/null)
if [ "$epm_version_before" != "$epm_version_after" ] ; then
info "An update for epm has been found, epm will be restarted for the update"
exec $PROGDIR/$PROGNAME full-upgrade "$@"
exit 0
fi
fi
fi
confirm_action "Do upgrade installed packages? [Y/n]" || full_upgrade_no_upgrade=1
if [ -z "$full_upgrade_no_upgrade" ] ; then
[ -n "$quiet" ] || echo
docmd epm $dryrun upgrade || fatal "upgrading of the system is failed."
fi
confirm_action "Upgrade kernel and kernel modules? [Y/n]" || full_upgrade_no_kernel_update=1
if [ -z "$full_upgrade_no_kernel_update" ] ; then
[ -n "$quiet" ] || echo
docmd epm $dryrun update-kernel || fatal "updating of the kernel is failed."
fi
# disable epm play --update for non ALT Systems
#[ "$BASEDISTRNAME" = "alt" ] || full_upgrade_no_epm_play=1
confirm_action "Upgrade packages installed via epm play? [Y/n]" || full_upgrade_no_epm_play=1
if [ -z "$full_upgrade_no_epm_play" ] ; then
[ -n "$quiet" ] || echo
if [ -n "$force" ] ; then
docmd epm $dryrun play $ipfs --force #|| fatal "updating of applications installed via epm play is failed."
else
docmd epm $dryrun play $ipfs --update all #|| fatal "updating of applications installed via epm play is failed."
fi
fi
if is_command flatpak ; then
confirm_action "Upgrade installed flatpak packages? [Y/n]" || full_upgrade_no_flatpak=1
if [ -z "$full_upgrade_no_flatpak" ] ; then
[ -n "$quiet" ] || echo
docmd flatpak update $(subst_option non_interactive --assumeyes) $(subst_option dryrun --no-deploy)
fi
fi
if is_command snap && serv snapd exists && serv snapd status >/dev/null ; then
confirm_action "Upgrade installed snap packages? [Y/n]" || full_upgrade_no_snap=1
if [ -z "$full_upgrade_no_snap" ] ; then
[ -n "$quiet" ] || echo
sudocmd snap refresh $(subst_option dryrun --list)
fi
fi
confirm_action "Do epm clean? [Y/n]" || full_upgrade_no_clean=1
if [ -z "$full_upgrade_no_clean" ] ; then
[ -n "$quiet" ] || echo
docmd epm $dryrun clean
fi
}