File update-service.sh of Package ayugram-desktop

#!/usr/bin/bash

# Parse .SRCINFO and generate _service file for Open Build Service
# Requirements:
#   yq jq grep sort cut
# NOTE: yq is https://github.com/kislyuk/yq

set -e

declare -a services=()
declare source_line services_string
while read -r source_line
do
    shopt -s extglob
    source_line=${source_line##*( )} # Remove leading space
    source_line=${source_line%%*( )} # Remove tailing space
    shopt -u extglob
    declare filename="${source_line%%::*}" url="${source_line#*::}" service_params
    declare -a params
    params=("$(jq -rc --null-input '$ARGS.named' --arg '@name' 'url' --arg '#text' "$url")")
    if [[ -n "$filename" ]]
    then
        params+=("$(jq -rc --null-input '$ARGS.named' --arg '@name' 'filename' --arg '#text' "$filename")")
    fi
    service_params="$(jq -rc --null-input '$ARGS.positional' --jsonargs "${params[@]}")"
    services+=("$(jq -rc --null-input '$ARGS.named' --arg '@name' 'download_url' --argjson 'param' "$service_params")")
done < <(grep source .SRCINFO | sort -u | cut -d = -f 2)

services_string="$(jq -rc --null-input '$ARGS.positional' --jsonargs "${services[@]}")"
jq -rc --null-input '$ARGS.named' --argjson 'service' "$services_string" | yq -r . -x --xml-root 'services' > _service
openSUSE Build Service is sponsored by