Welcome to mirror list, hosted at ThFree Co, Russian Federation.

helper_update « include - github.com/CISOfy/lynis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0453ffbdb3f7522fb246aacb308c12f953d96eaf (plain)
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
#!/bin/sh

#################################################################################
#
#   Lynis
# ------------------
#
# Copyright 2007-2013, Michael Boelen
# Copyright 2007-2021, CISOfy
#
# Website  : https://cisofy.com
# Blog     : http://linux-audit.com
# GitHub   : https://github.com/CISOfy/lynis
#
# Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
# welcome to redistribute it under the terms of the GNU General Public License.
# See LICENSE file for usage of this software.
#
######################################################################
#
# Helper program to support automatic updates of Lynis
#
######################################################################
#
# Options:
# ---------
# 1) lynis update info     - Show version information (external)
#
# How to use:
# ------------
# Run option 1 to know about current and latest release information.
#
######################################################################

LOCAL_VERSION="-"
RUN_UPDATE_CHECK=1
SERVER_VERSION=""
PERFORM_UPGRADE=0
QUIET=0

WGET_EXISTS=$(which wget 2> /dev/null | grep -v "no [^ ]* in ")
CURL_EXISTS=$(which curl 2> /dev/null | grep -v "no [^ ]* in ")
FETCH_EXISTS=$(which fetch 2> /dev/null | grep -v "no [^ ]* in ")

# Update version
if [ "$1" = "release" ]; then

    ${ECHOCMD} "Deprecated: this function is no longer available. Use a package (https://packages.cisofy.com), or deploy via a custom package or script."

# Update check
elif [ "$1" = "info" ]; then

        # CV - Current Version
        PROGRAM_AC=$(echo ${PROGRAM_VERSION} | awk '{ print $1 }' | sed 's/[.]//g')
        PROGRAM_LV=0

        CheckUpdates

        # Reset everything if we can't determine our current version or the latest
        # available version (due lack of internet connectivity for example)
        if [ "${PROGRAM_AC}" = "" -o "${PROGRAM_LV}" = "" ]; then
            # Set both to safe values
            PROGRAM_AC=0; PROGRAM_LV=0
        fi

        echo ""; echo " == ${WHITE}${PROGRAM_NAME}${NORMAL} =="
        echo ""
        echo "  Version            : ${PROGRAM_VERSION}"
        echo -n "  Status             : "
        if [ ${PROGRAM_LV} -eq 0 ]; then
            echo "${RED}Unknown${NORMAL}";
        elif [ ${PROGRAM_LV} -gt ${PROGRAM_AC} ]; then
            echo "${YELLOW}Outdated${NORMAL}";
            echo "  Installed version  : ${PROGRAM_AC}"
            echo "  Latest version     : ${PROGRAM_LV}"
        else
            echo "${GREEN}Up-to-date${NORMAL}"
        fi
        echo "  Release date       : ${PROGRAM_RELEASE_DATE}"
        echo "  Project page       : ${PROGRAM_WEBSITE}"
        echo "  Source code        : ${PROGRAM_SOURCE}"
        echo "  Latest package     : ${PROGRAM_PACKAGE}"
        echo ""; echo ""
        echo "${PROGRAM_COPYRIGHT}"
        echo ""

# Check if there is an update, display status on screen and use exit code to tell status as well
elif [ "$1" = "check" ]; then
        # CV - Current Version, LV - Latest Version
        PROGRAM_CV=$(echo ${PROGRAM_VERSION} | awk '{ print $1 }' | sed 's/[.]//g')
        PROGRAM_LV=0
        CheckUpdates
        if [ "${PROGRAM_CV}" = "" -o "${PROGRAM_LV}" = "" ]; then PROGRAM_AC=0; PROGRAM_LV=0; fi
        if [ ${PROGRAM_LV} -eq 0 ]; then
            echo "status=unknown";
            ExitCustom 1
        elif [ ${PROGRAM_LV} -gt ${PROGRAM_CV} ]; then
            echo "status=outdated";
            ExitCustom 1
        else
            echo "status=up-to-date"
            ExitClean
        fi

else
    ${ECHOCMD} "${RED}Error: ${WHITE}Unknown parameter $1.${NORMAL} Aborting.."
    ExitFatal
fi

ExitClean

QUIET=1

# The End