[ghc-rpm-macros] add cabal-tweak-flag script for toggling flag default

Jens Petersen petersen at fedoraproject.org
Mon Dec 3 07:00:16 UTC 2012


commit 6af89aa214ce999f46d83d3026d50ce926b42ed7
Author: Jens Petersen <petersen at redhat.com>
Date:   Mon Dec 3 16:00:06 2012 +0900

    add cabal-tweak-flag script for toggling flag default

 cabal-tweak-flag    |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 ghc-rpm-macros.spec |    8 +++++++-
 2 files changed, 57 insertions(+), 1 deletions(-)
---
diff --git a/cabal-tweak-flag b/cabal-tweak-flag
new file mode 100755
index 0000000..0d54d53
--- /dev/null
+++ b/cabal-tweak-flag
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# TODO:
+# support "$0 FLAG NEW" when no upstream default
+
+set -e +x
+
+USAGE="Usage: $0 FLAG OLD NEW"
+
+if [ $# -ne 3 ]; then
+    echo "$USAGE"
+    exit 1
+fi
+
+FLAG=$1
+OLD=$2
+NEW=$3
+
+if [ "$OLD" = "$NEW" ]; then
+  echo "Old and new value can't be the same!"
+  exit 1
+fi
+
+CABALFILE=$(ls *.cabal)
+
+if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
+   echo "There needs to be one .cabal file in the current dir!"
+   exit 1
+fi
+
+if ! grep -q -i "^flag *$FLAG" $CABALFILE; then
+   echo "$CABALFILE does have flag $FLAG"
+   exit 1
+fi
+
+if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default:"; then
+   echo "$CABALFILE: $FLAG flag might not have a default"
+   exit 1
+fi
+
+if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default: *$OLD"; then
+   echo "$CABALFILE: $FLAG flag already defaults to $NEW"
+   exit 1
+fi
+
+if [ ! -f $CABALFILE.orig ]; then
+    BACKUP=.orig
+fi
+
+sed -i$BACKUP -e "/[Ff]lag *$FLAG/,/[Dd]efault: *$OLD/ s/\([Dd]efault: *\)$OLD/\1$NEW/" $CABALFILE
diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec
index a2a36a4..cc8015d 100644
--- a/ghc-rpm-macros.spec
+++ b/ghc-rpm-macros.spec
@@ -6,7 +6,7 @@
 #%%global without_hscolour 1
 
 Name:           ghc-rpm-macros
-Version:        0.97.4
+Version:        0.97.5
 Release:        1%{?dist}
 Summary:        Macros for building packages for GHC
 
@@ -23,6 +23,7 @@ Source1:        COPYING
 Source2:        AUTHORS
 Source3:        ghc-deps.sh
 Source4:        cabal-tweak-dep-ver
+Source5:        cabal-tweak-flag
 Requires:       redhat-rpm-config
 %if %{undefined without_hscolour}
 BuildRequires:  redhat-rpm-config
@@ -51,6 +52,7 @@ install -p -D -m 0644 %{SOURCE0} ${RPM_BUILD_ROOT}/%{macros_file}
 install -p -D -m 0755 %{SOURCE3} %{buildroot}/%{_prefix}/lib/rpm/ghc-deps.sh
 
 install -p -D -m 0755 %{SOURCE4} %{buildroot}/%{_bindir}/cabal-tweak-dep-ver
+install -p -D -m 0755 %{SOURCE5} %{buildroot}/%{_bindir}/cabal-tweak-flag
 
 # this is why this package is now arch-dependent:
 # turn off shared libs and dynamic linking on secondary archs
@@ -69,9 +71,13 @@ EOF
 %config(noreplace) %{macros_file}
 %{_prefix}/lib/rpm/ghc-deps.sh
 %{_bindir}/cabal-tweak-dep-ver
+%{_bindir}/cabal-tweak-flag
 
 
 %changelog
+* Mon Dec  3 2012 Jens Petersen <petersen at redhat.com> - 0.97.5-1
+- add cabal-tweak-flag script for toggling flag default
+
 * Sat Nov 17 2012 Jens Petersen <petersen at redhat.com> - 0.97.4-1
 - enable hscolour again
 


More information about the scm-commits mailing list