Subject: [PATCH] Add support reading default options from conf file

From: Jonas Fonseca <[email-masked]>
Date: Thu, 9 Jun 2005 03:00:56 +0200

Reply-To: 
In-Reply-To: <[email-masked]>

Dan Holmsand <[email-masked]> wrote Wed, Jun 08, 2005:
> - Automatic color if the COGITO_AUTO_COLOR environment variable is set.

[ This has been discussed before. Default arguments. The 'new' cg
  wrapper makes this very easy. Not as smart as your env variable
  handling tho'. ]

The default options are read only for Cogito calls going through the new
cg wrapper which makes it trivial to 'overwrite' them by just calling
cg-COMMAMD.

Signed-off-by: Jonas Fonseca <[email-masked]>
---

 Documentation/make-cogito-asciidoc |   12 ++++++++++++
 cg                                 |    6 +++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/Documentation/make-cogito-asciidoc b/Documentation/make-cogito-asciidoc
--- a/Documentation/make-cogito-asciidoc
+++ b/Documentation/make-cogito-asciidoc
@@ -140,6 +140,18 @@ FILE::
 	Indicates an already existing filename - always relative to the root
 	of the repository.
 
+FILES
+-----
+~/.cogito.conf::
+	This file is read when running the \`cg\` wrapper program and
+	contains information about default options. Each line consists
+	of a command name and a list of options. Empty lines and lines
+	starting with '#' are ignored. To always have \`cg log\` and
+	\`cg diff\` output colored put the following in ~/.cogito.conf:
+
+		log -c
+		diff -c
+
 COPYRIGHT
 ---------
 Copyright (C) Petr Baudis, 2005.
diff --git a/cg b/cg
--- a/cg
+++ b/cg
@@ -3,5 +3,9 @@
 cmd="$1"; shift
 [ x"$cmd" = x"--help" ] && cmd="help"
 
+if [ -e "$HOME/.cogito.conf" ]; then
+	defaults="$(grep "^$cmd" "$HOME/.cogito.conf" | sed "s/^$cmd //")"
+fi
+
 exe="cg-$cmd"
-exec $exe "$@"
+exec $exe "$defaults" "$@"

-- 
Jonas Fonseca