Add support reading default options from conf file
PATCH 1/1 Add support reading default options from conf file
Reply-To:
In-Reply-To: <[email protected]>
Dan Holmsand <[email protected]> wrote Wed, Jun 08, 2005:
Quoted 1 line
- Automatic color if the
COGITO_AUTO_COLORenvironment 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.
---
Documentation/make-cogito-asciidoc | 12 ++++++++++++ cg | 6 +++++- 2 files changed, 17 insertions(+), 1 deletions(-)
Documentation/make-cogito-asciidoc +12 -0
@@ -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.
cg +5 -1
@@ -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" "$@"
Signature · 1 line
Jonas Fonseca
Dear diary, on Thu, Jun 09, 2005 at 03:00:56AM CEST, I got a letter where Jonas Fonseca <[email protected]> told me that...
Quoted 10 lines
Reply-To:
In-Reply-To: <[email protected]>Dan Holmsand <[email protected]> wrote Wed, Jun 08, 2005:
Quoted 1 line
- Automatic color if the
COGITO_AUTO_COLORenvironment 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'. ]
Quoted 5 lines
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 protected]>
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. ;-)
Signature · 3 lines
Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ <Espy> be careful, some twit might quote you out of context..
PATCH 1/1 Read default options from config file
Petr Baudis <[email protected]> wrote Thu, Jun 09, 2005:
Quoted 14 lines
Dear diary, on Thu, Jun 09, 2005 at 03:00:56AM CEST, I got a letter where Jonas Fonseca <[email protected]> told me that...
Quoted 11 lines
Dan Holmsand <[email protected]> wrote Wed, Jun 08, 2005:
Quoted 1 line
- Automatic color if the
COGITO_AUTO_COLORenvironment 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.
Quoted 7 lines
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
---
Documentation/make-cogito-asciidoc | 13 +++++++++++++ cg-Xlib | 7 +++++++ 2 files changed, 20 insertions(+), 0 deletions(-)
Documentation/make-cogito-asciidoc +13 -0
@@ -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.
cg-Xlib +7 -0
@@ -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[@]}")
Signature · 1 line
Jonas Fonseca