git.iko.soy/typeable/servant
on master help sign in
Added update-nixpkgs.sh script.
commit3e0be5a305ce731da27030f6ca5fe2e6f9c9a821 authorJulian K. Arni <jkarni@gmail.com> dateFri 9 Jan 2015, 18:04 (12 years ago) parent5a6d864
1 file changed+83
update-nixpkgs.sh+83
update-nixpkgs.shnew file+83
@@ -0,0 +1,83 @@
1+#!/bin/bash -
2+#===============================================================================
3+#
4+# FILE: update-nixpkgs.sh
5+#
6+# USAGE: ./update-nixpkgs.sh
7+#
8+# DESCRIPTION: Update servant packages in nixpkgs.
9+#
10+# OPTIONS: -d <NIXPKGS DIR>
11+# REQUIREMENTS: cabal2nix, git, hub
12+# BUGS: ---
13+# NOTES: ---
14+# AUTHOR: Julian Arni <jkarni@gmail.com>,
15+# ORGANIZATION: Zalora SEA
16+# CREATED: 09.01.2015 15:38
17+# REVISION: ---
18+#===============================================================================
19+
20+set -o nounset
21+set -e
22+
23+# Variables
24+declare -ar -x PKGS=(servant servant-client servant-server servant-jquery servant-docs)
25+declare -a CHANGED
26+
27+PKG_NO=${#PKGS[@]}
28+GIT_DIR=$(mktemp -d)
29+FORK=""
30+BRANCH_NAME=servant-changes
31+HASKELL_LIBS=pkgs/development/libraries/haskell
32+
33+cleanup () {
34+ echo "Removing temporary directory $GIT_DIR"
35+ rm -rf $GIT_DIR
36+}
37+
38+while getopts f: OPT ; do
39+ case $OPT in
40+ f) FORK=$OPTARG ;;
41+ esac
42+done
43+
44+# Check if we can proceed
45+
46+if [[ -z "$FORK" ]] ; then
47+ echo "Your fork must be specified with -f FORK"
48+ exit 1
49+fi
50+
51+cd $GIT_DIR
52+
53+git clone --depth 1 git@github.com:NixOS/nixpkgs.git && cd nixpkgs
54+
55+trap cleanup INT TERM EXIT
56+
57+for ((i = 0 ; i < PKG_NO ; i++ )); do
58+ PKG=${PKGS[$i]}
59+ echo -n "Checking $PKG... "
60+ FILE="pkgs/development/libraries/haskell/$PKG/default.nix"
61+ TEMPFILE=$(tempfile)
62+ cabal2nix cabal://$PKG >> $TEMPFILE
63+ if [[ -n "$(diff -q $TEMPFILE $FILE)" ]] ; then
64+ CHANGED+=( $PKG )
65+ echo "Package updated"
66+ cat $TEMPFILE > $FILE
67+ else
68+ echo "No changes"
69+ fi
70+ rm $TEMPFILE
71+done
72+
73+git checkout -b $BRANCH_NAME
74+
75+if [[ ${#CHANGED[@]} -ne 0 ]]; then
76+ git add pkgs/development/libraries/haskell
77+ git commit -m "Updated haskell packages ${CHANGED[@]}"
78+ git remote add fork $FORK
79+ git push fork $BRANCH_NAME
80+ hub pull-request
81+fi
82+
83+cleanup