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
|
#!/bin/sh
#################################################################################
#
# Lynis
# ------------------
#
# Copyright (c) Michael Boelen, CISOfy, and many contributors.
#
# Website : https://cisofy.com/
# Blog : https://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
# EOF
|