-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdaily-check.sh
More file actions
executable file
·106 lines (98 loc) · 2.88 KB
/
daily-check.sh
File metadata and controls
executable file
·106 lines (98 loc) · 2.88 KB
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
#!/bin/sh
#
# daily-check.sh - make sure things are running, reauthentication
# is done, things that you want to do everyday
#
# Copyright (C) 2022 Michael Davies <michael@the-davies.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Or try here: http://www.fsf.org/copyleft/gpl.html
#
# Include bash library
command -v bashlib.sh &> /dev/null || \
{ echo >&2 "$(basename $0): Can't find bashlib.sh. Aborting."; exit 1; }
. bashlib.sh
# Command line argument processing
NOASK=0
for ARG in "$@"; do
case $ARG in
-h)
echo >&2 "Usage: $(basename $0) [-h] [-n]"
echo >&2 " -h display this help"
echo >&2 " -n ask before applying updates"
exit 1
;;
-n)
NOASK=1
;;
*)
;;
esac
done
# There are some things we always want running
declare -a REQDPROGS=( poll-internet slack )
for PROG in "${REQDPROGS[@]}"; do
if ! check_process_running ${PROG} ; then
print_message_box "The program \"${PROG}\" is not running"
fi
done
update_dnf ()
{
if is_available dnf ; then
if ! dnf check-update >& /dev/null ; then
if [ $NOASK -eq 1 ]; then
confirm_continue "Do you want to install software updates? "
fi
sudo dnf update -y
fi
else
echo "There's no 'dnf' available"
fi
}
update_flatpak ()
{
# flatpak
if is_available flatpak ; then
sudo flatpak update --noninteractive >& /dev/null
else
if [ ! -e ${HOME}/.flatpak ]; then
echo "There's no 'flatpak' available"
touch ${HOME}/.flatpak
fi
fi
}
update_snap ()
{
# flatpak
if is_available snap ; then
sudo snap refresh >& /dev/null
else
if [ ! -e ${HOME}/.snap ]; then
echo "There's no 'snap' available"
touch ${HOME}/.snap
fi
fi
}
# Reauthenticate if we can
run_if_avail auth.sh
# See if there's any software updates
OSTYPE=$( guess_os )
if [ "${OSTYPE}" = "Red Hat" ]; then
update_dnf
update_flatpak
update_snap # ...even though this isn't really a thing on Red Hat
else
echo "You're not using a supported operating system, so I can't check for available updates"
fi