[PATCH] Read default options from config file
From: Jonas Fonseca <hidden>
Date: 2016-06-15 22:41:59
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Petr Baudis [off-list ref] wrote Thu, Jun 09, 2005:
Dear diary, on Thu, Jun 09, 2005 at 03:00:56AM CEST, I got a letter where Jonas Fonseca [off-list ref] told me that...quoted
Dan Holmsand [off-list ref] wrote Wed, Jun 08, 2005:quoted
- 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 <redacted> --- 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