on develop help sign in
Adding manual Hackage documentation upload scripts
commit2e5b492d094cdee5be0c82d62452ab5dae658d0b authorBrendan Hay <brendan.g.hay@gmail.com> dateFri 4 Nov 2016, 10:23 (10 years ago) parentfb95050
4 files changed+33−16
Makefile+1−1 gogol/stack.yaml−7 script/hackage-documentation+29 share/library.mk+3−8
Makefile+1−1
@@ -1,6 +1,6 @@
11SERVICES ?= $(wildcard gogol-*)
22LIBRARIES ?= core gogol $(SERVICES)
3−FORWARD := sdist upload candidate
3+FORWARD := sdist upload upload-docs
44
55build:
66 stack build --fast
gogol/stack.yamldeleted−7
@@ -1,7 +0,0 @@
1−resolver: lts-3.10
2−flags: {}
3−extra-deps:
4− - memory-0.10
5−packages:
6− - '.'
7− - '../core'
script/hackage-documentationnew file+29
@@ -0,0 +1,29 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+: ${PACKAGE?}
6+: ${PASSWORD?}
7+
8+STACKVER=$(cat $PACKAGE.cabal|grep '^version:'|head -1|awk '{print $2}')
9+STACKDOCDIR=$PACKAGE-$STACKVER-docs
10+OUTPUT=dist/doc
11+
12+stack haddock --fast $PACKAGE
13+
14+rm -rf $OUTPUT/$STACKDOCDIR
15+mkdir -p $OUTPUT
16+
17+cp -r $(stack path --local-doc-root)/$PACKAGE-$STACKVER $OUTPUT/$STACKDOCDIR
18+
19+sed -i 's/href="\.\.\/\([^/]*\)\//href="..\/..\/\1\/docs\//g' $OUTPUT/$STACKDOCDIR/*.html
20+
21+(cd $OUTPUT && tar cvz --format=ustar -f $STACKDOCDIR.tar.gz $STACKDOCDIR)
22+
23+curl -X PUT \
24+ -H 'Content-Type: application/x-tar' \
25+ -H 'Content-Encoding: gzip' \
26+ -u BrendanHay:$PASSWORD \
27+ --digest \
28+ --data-binary @"$OUTPUT/$STACKDOCDIR.tar.gz" \
29+ https://hackage.haskell.org/package/$PACKAGE-$STACKVER/docs
share/library.mk+3−8
@@ -2,18 +2,13 @@ SHELL := /usr/bin/env bash
22NAME ?= $(notdir $(CURDIR:a/%=%))
33VERSION ?= $(shell sed -n 's/^version: *\(.*\)$$/\1/p' $(NAME).cabal)
44
5−CANDIDATE = $(realpath dist/$(NAME)-$(VERSION).tar.gz)
6−
75default:
86
97sdist:
108 cabal sdist
119
12−candidate:
13− curl -X POST -H 'Content-Type: multipart/form-data' \
14− --form package=@$(CANDIDATE) \
15− --form press=submit \
16− http://hackage.haskell.org/packages/candidates/
17−
1810upload:
1911 cabal upload dist/$(NAME)-$(VERSION).tar.gz
12+
13+upload-docs:
14+ PACKAGE=$(NAME) ../script/hackage-documentation