git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Read default options from config file

From
Jonas Fonseca <fonseca@diku.dk>
Date
Jun 11, 2005, 01:09 UTC
Message-ID
<20050611010931.GA13272@diku.dk>
In-Reply-To
<20050609083243.GD29665@pasky.ji.cz>
Petr Baudis <pasky@ucw.cz> wrote Thu, Jun 09, 2005:
Show 21 quoted lines
> Dear diary, on Thu, Jun 09, 2005 at 03:00:56AM CEST, I got a letter
> where Jonas Fonseca <fonseca@diku.dk> told me that...
> > 
> > Dan Holmsand <holmsand@gmail.com> 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.
> 
> No, this is the wrong way. The 'cg' wrapper must not really do anything
> special on its own. It's not a _replacement_ for direct calling of the
> cg-scripts, it's just an aid for people who don't want to get used to
> it. So please do this in cg-Xlib.
> 
> Also, I'd prefer the config file to be something like ~/.cgrc. I want to
> reserve the .conf file for something more sophisticated. ;-)

With the optparse stuff in things got a lot easier. I took the idea to check for stole from Dan Holmsands patches to only read it when stdout is a terminal. So the file is really only for interactive usage.

---

Introduce ~/.cgrc config file. The file is read on startup if stdout is a terminal and may contain information about default command line options. Each line consists of a command name and a list of options. Lines not starting with a 'Cogito' command name are ignored.

To always have cg-log and cg-diff colorize the output put the followig in ~/.cgrc:

	log -c
	diff -c
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
---
 Documentation/make-cogito-asciidoc |   13 +++++++++++++
 cg-Xlib                            |    7 +++++++
 2 files changed, 20 insertions(+), 0 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,19 @@ FILE::
 	Indicates an already existing filename - always relative to the root
 	of the repository.
 
+FILES
+-----
+~/.cgrc::
+	This file is read on startup if \`stdout\` is a terminal and may
+	contain information about default command line options. Each line
+	consists of a command name and a list of options. Lines not
+	starting with a 'Cogito' command name are ignored. To have
+	\`cg-log\` and \`cg-diff\` colorize the output put the following
+	in ~/.cgrc:
+
+		log -c
+		diff -c
+
 COPYRIGHT
 ---------
 Copyright (C) Petr Baudis, 2005.
diff --git a/cg-Xlib b/cg-Xlib
--- a/cg-Xlib
+++ b/cg-Xlib
@@ -150,6 +150,13 @@ done
 ARGS=("$@")
 ARGPOS=0
 
+if [ -t 1 -a -e "$HOME/.cgrc" ]; then
+	_cg_name=${_cg_cmd#cg-}
+	_cg_defaults="$(sed -n "/^$_cg_name/s/^$_cg_name //p" < $HOME/.cgrc)"
+	ARGS=($_cg_defaults "${ARGS[@]}")
+fi
+
+
 optshift() {
 	unset ARGS[$ARGPOS]
 	ARGS=("${ARGS[@]}")
-- 
Jonas Fonseca
Previous: Petr Baudis
Message 3 of 3 in “Add support reading default options from conf file”
  1. Add support reading default options from conf fileJonas Fonseca, Jun 9, 2005
  2. Petr BaudisJun 9, 2005
  3. Read default options from config fileJonas Fonseca, Jun 11, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.