From 115525a55f2665f12fa938c7bdd0ab00123172d7 Mon Sep 17 00:00:00 2001 From: "Ramón M. Gómez" Date: Wed, 10 Oct 2018 11:02:55 +0200 Subject: #850: Script {{{checkrepo}}} creates the repository info file if it doesn't exist and uses a new global functions file. --- repoman/bin/checkrepo | 49 +++++++------------------------------------------ 1 file changed, 7 insertions(+), 42 deletions(-) (limited to 'repoman/bin') diff --git a/repoman/bin/checkrepo b/repoman/bin/checkrepo index b38a689b..3a7448a2 100755 --- a/repoman/bin/checkrepo +++ b/repoman/bin/checkrepo @@ -1,9 +1,9 @@ #!/bin/bash #/** -# checkrepo #@file checkrepo -#@brief Generate repository information in a JSON file. +#@brief Maintain repository information in a JSON file. +#@usage checkrepo #@warning This script uses "jq" command. #@version 1.1.0 - Initial version. #@author Ramón M. Gómez - ETSII Univ. Sevilla @@ -18,15 +18,8 @@ IMAGESDIR=$OPENGNSYS/images INFOFILE=$OPENGNSYS/etc/repoinfo.json -# Auxiliar functions. - -# Metafunction to check if JSON result exists. -function jq() { - local OUTPUT - OUTPUT=$($JQ "$@") || return $? - [[ "$OUTPUT" = "null" ]] && return 1 - echo "$OUTPUT" -} +# Functions. +source $OPENGNSYS/lib/ogfunctions.sh # Create/edit JSON file about installed ogLive clients. function addToJson() { @@ -105,7 +98,7 @@ EOT # Create new JSON file. if [ -z "$OUNAME" ]; then cat << EOT | jq . > $INFOFILE -{"directory":"$IMAGESDIR","images":[$JSON],"ous":[]} +{"directory":"$IMAGESDIR","images":[${IMAGENAME+$JSON}],"ous":[]} EOT else cat << EOT | jq . > $INFOFILE @@ -115,34 +108,6 @@ EOT fi } -# Show an error message. -function raiseError() { - case "$1" in - usage) - echo "$PROG: Usage error: Type \"$PROG help\"" >&2 - exit 1 ;; - notfound) - echo "$PROG: Resource not found: $2" >&2 - exit 2 ;; - access) - echo "$PROG: Access error: $2" >&2 - exit 3 ;; - *) - echo "$PROG: Unknown error" >&2 - exit 1 ;; - esac -} - -# Command functions. - -# Show help message. -function help() { - cat << EOT -$PROG: maintain the repository information. -Usage: $PROG -EOT -} - # Check for file-based images to update the repository configuration file. function checkfiles() { local IMAGES IMG INFO DATA @@ -220,8 +185,8 @@ function checkremoved() { # Main progrram. # Check dependencies. -[ ! -w "$(dirname "$INFOFILE")" ] && raiseError access "$INFOFILE" -JQ=$(which jq 2>/dev/null) || raiseError notfound "Need to install \"jq\"." +[ -w "$(dirname "$INFOFILE")" ] || raiseError access "$INFOFILE" +[ -e "$INFOFILE" ] || addToJson which sponge &>/dev/null || raiseError notfound "Need to install \"moreutils\"." checkfiles -- cgit v1.2.3-18-g5258