#!/bin/bash
set -euo pipefail

KEY=""
INPUT=""
OUTPUT=""
MODE=""

while [[ $# -gt 0 ]]; do
    case "$1" in
        --key)
            KEY="$2"
            shift 2
            ;;
        --lkmsign)
            MODE="lkmsign"
            INPUT="$2"
            shift 2
            ;;
        --rsadgstsign)
            MODE="rsadgstsign"
            INPUT="$2"
            shift 2
            ;;
        --output)
            OUTPUT="$2"
            shift 2
            ;;
        *)
            echo "rpm-sign: unknown option: $1" >&2
            exit 1
            ;;
    esac
done

if [[ -z "$KEY" || -z "$MODE" || -z "$INPUT" ]]; then
    echo "rpm-sign: missing required arguments" >&2
    echo "Usage: rpm-sign --key <key> --lkmsign <input> --output <output>" >&2
    echo "       rpm-sign --key <key> --rsadgstsign <sattrs>" >&2
    exit 1
fi

case "$MODE" in
    lkmsign)
        if [[ -z "$OUTPUT" ]]; then
            echo "rpm-sign: --output is required with --lkmsign" >&2
            exit 1
        fi
        /usr/local/bin/rpm-sign.local lkmsign "$KEY" "$INPUT" "$OUTPUT"
        ;;
    rsadgstsign)
        /usr/local/bin/rpm-sign.local rsadgstsign "$KEY" "$INPUT"
        ;;
esac
