#!/bin/bash
set -e

mkdir -p /etc/apt/keyrings

move_key() {
    local id="$1"
    local name="$2"
    local target="/etc/apt/keyrings/$name"
    local old="/etc/apt/trusted.gpg.d/$name"
    local temporary

    [[ -s "$target" ]] && return 0

    if [[ -s "$old" ]]; then
        cat "$old" > "$target"
        return 0
    fi

    [[ -s /etc/apt/trusted.gpg ]] || return 1

    temporary=$(mktemp)
    gpg --batch --no-default-keyring --keyring /etc/apt/trusted.gpg --export "$id" > "$temporary"
    if [[ ! -s "$temporary" ]]; then
        rm -f "$temporary"
        return 1
    fi

    cat "$temporary" > "$target"
    rm -f "$temporary"
}

if move_key 862A4A51 artix.gpg; then
    if [[ -f /etc/apt/sources.list.d/cashserver4.list ]]; then
        sed -i 's|deb \[arch=amd64\]|deb [arch=amd64 signed-by=/etc/apt/keyrings/artix.gpg]|g' /etc/apt/sources.list.d/cashserver4.list
    fi
fi

if move_key 0EBFCD88 docker.gpg; then
    if [[ -f /etc/apt/sources.list.d/docker.list ]]; then
        sed -i 's|deb \[arch=amd64\]|deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg]|g' /etc/apt/sources.list.d/docker.list
    fi
fi