#!/usr/bin/env bash

set -euo pipefail

# The first argument must be the desired installable
INSTALLABLE="$1"

# Build the installable and forward any other arguments too
nix build "$@"

if [ ! -z ${ATTIC_TOKEN+x} ]; then

nix run --inputs-from . attic -- login \
    conduit \
        https://nix.computer.surgery/conduit \
        "$ATTIC_TOKEN"

    push_args=(
        # Attic and its build dependencies
        "$(nix path-info --inputs-from . attic)"
        "$(nix path-info --inputs-from . attic --derivation)"

        # The target installable and its build dependencies
        "$(nix path-info "$INSTALLABLE" --derivation)"
        "$(nix path-info "$INSTALLABLE")"
    )

    nix run --inputs-from . attic -- push conduit "${push_args[@]}"
else
    echo "\$ATTIC_TOKEN is unset, skipping uploading to the binary cache"
fi