Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
reflex-frp
GitHub Repository: reflex-frp/reflex-platform
Path: blob/develop/scripts/uploadReleaseCandidate
1 views
#!/usr/bin/env bash
set -euo pipefail

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )

. "$DIR/scripts/common-setup.sh"

HACKAGE_USER="$1"
PKG="$2"

PKG="$(package_invocation "(import $DIR {}).ghc" "$PKG")"
RC="$(nix-build --no-out-link $NIXOPTS -E "(import $DIR/nix-utils/hackage {}).mkReleaseCandidate $PKG")"
PKGNAME="$(cat "$RC/pkgname")"

echo -n "Hackage password: "
read -s password
echo

HACKAGE_CREDS="$HACKAGE_USER:$password"

curl -K <(echo "-u $HACKAGE_CREDS") -F package=@"$RC/$PKGNAME.tar.gz" "https://hackage.haskell.org/packages/candidates/"
curl -X PUT -K <(echo "-u $HACKAGE_CREDS") -H 'Content-Type: application/x-tar' -H 'Content-Encoding: gzip' --data-binary @"$RC/$PKGNAME-docs.tar.gz" "https://hackage.haskell.org/package/$PKGNAME/candidate/docs"

echo "Candidate uploaded to https://hackage.haskell.org/package/$PKGNAME/candidate"