Proposed change to base-files /etc/bash.bashrc: see whether PS1 has already been set

2012-03-26 Thread David Caldwell
I can't figure out where the CVS is for base-files, but I wanted to
propose that the file:

/etc/bash.bashrc

... be altered to test whether the PS1 variable has already been set
before setting it to the default.

I set mine in a file in the /etc/profile.d directory, but with the
standard Cygwin installation, this value is overwritten unless I
modify each user's local setup or alter the system-wide file.

It would be harmless to ignore already-set values in this situation.

I could obviously generate a patch as necessary if I knew where the
repository was, but it's a one-liner, basically:

if [ -z $PS1 ]; then
        PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
fi

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



Re: Proposed change to base-files /etc/bash.bashrc: see whether PS1 has already been set

2012-03-26 Thread David Sastre Medina
On Mon, Mar 26, 2012 at 04:40:31PM +0100, David Caldwell wrote:
 I can't figure out where the CVS is for base-files, but I wanted to
 propose that the file:
 
 /etc/bash.bashrc
 
 ... be altered to test whether the PS1 variable has already been set
 before setting it to the default.
 I set mine in a file in the /etc/profile.d directory, but with the
 standard Cygwin installation, this value is overwritten unless I
 modify each user's local setup or alter the system-wide file.
 It would be harmless to ignore already-set values in this situation.
 I could obviously generate a patch as necessary if I knew where the
 repository was, but it's a one-liner, basically:
 
 if [ -z $PS1 ]; then
         PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
 fi

There is no public repository for the package. That does not stop you
from generating a patch, though :)
You forgot to say which shell are you using, as they are/can be
differently set up WRT PS1.

If I wanted all my users to get a custom (read: different from the
default) PS1, I guess I'd use the skel files for that.

If you decide to use a custom /etc/profile.d/ script to do that job,
then you need to tweak system-wide /etc/profile as well, IMHO.

Also, the patch is indeed harmless, but, as you provide it, i needs to
be used once for each ifdef in the profile.

-- 
Primary key fingerprint: AD8F BDC0 5A2C FD5F A179  60E7 F79B AB04 5299 EC56


signature.asc
Description: Digital signature


Re: Proposed change to base-files /etc/bash.bashrc: see whether PS1 has already been set

2012-03-26 Thread David Caldwell
On Mon, Mar 26 2012 at 09:22:3147PM +0200, David Sastre Medina wrote:
On Mon, Mar 26, 2012 at 04:40:31PM +0100, David Caldwell wrote:
 I can't figure out where the CVS is for base-files, but I wanted to
 propose that the file:

 /etc/bash.bashrc

 ... be altered to test whether the PS1 variable has already been set
 before setting it to the default.
 I set mine in a file in the?/etc/profile.d?directory, but with the
 standard Cygwin installation, this value is overwritten unless I
 modify each user's local setup or alter the system-wide file.
 It would be harmless to ignore already-set values in this situation.
 I could obviously generate a patch as necessary if I knew where the
 repository was, but it's a one-liner, basically:

 if [ -z $PS1 ]; then
 ? ? ? ? PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
 fi

There is no public repository for the package. That does not stop you
from generating a patch, though :)

You forgot to say which shell are you using, as they are/can be
differently set up WRT PS1.

If I wanted all my users to get a custom (read: different from the
default) PS1, I guess I'd use the skel files for that.

If you decide to use a custom /etc/profile.d/ script to do that job,
then you need to tweak system-wide /etc/profile as well, IMHO.

Also, the patch is indeed harmless, but, as you provide it, i needs to
be used once for each ifdef in the profile.

I'm not sure I follow ... I'm not a UNIX system administration expert,
but I am pretty sure the bash.bashrc file pertains only to bash. And
the current base version of that file only sets one variable: PS1. So
that's why I'm proposing the one-line patch.

I'm not sure why one would need to alter /etc/profile to create an
/etc/profile.d script, but I'm open to hearing more.

Of the various shells referenced in the provided /etc/profile, only
bash executes a custom file (in addition to executing the files in
/etc/profile.d), and it executes /etc/bash.bashrc.

I suppose an alternative, equivalent change to the one I originally
proposed might be to execute /etc/bash.bashrc *before* executing the
files in /etc/profile.d; either makes sense to me. I'm not sure what
the precedence order of those ought to be but my view is bash.bashrc
ought to be executed first as it is providing out-of-the-box defaults
and /etc/profile.d is intended for local modification.

I'd be willing to generate either patch. :)

-- David.

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



Re: Proposed change to base-files /etc/bash.bashrc: see whether PS1 has already been set

2012-03-26 Thread David Sastre Medina
On Mon, Mar 26, 2012 at 09:12:11PM +0100, David Caldwell wrote:
 On Mon, Mar 26 2012 at 09:22:3147PM +0200, David Sastre Medina wrote:
 On Mon, Mar 26, 2012 at 04:40:31PM +0100, David Caldwell wrote:
  I can't figure out where the CVS is for base-files, but I wanted to
  propose that the file:
 
  /etc/bash.bashrc

Oops! So sorry. I (obviously) overlooked this line...
 
 I'm not sure why one would need to alter /etc/profile to create an
 /etc/profile.d script, but I'm open to hearing more.

What I tried to say is that by adding a custom /etc/profile.d/ script,
you are overriding the default setup for bash, and therefore it would not be
that weird to alter also /etc/profile. I never implied that by adding
the former one would be forced to alter the latter.

 I suppose an alternative, equivalent change to the one I originally
 proposed might be to execute /etc/bash.bashrc *before* executing the
 files in /etc/profile.d; either makes sense to me. I'm not sure what
 the precedence order of those ought to be but my view is bash.bashrc
 ought to be executed first as it is providing out-of-the-box defaults
 and /etc/profile.d is intended for local modification.

I see what you mean. It looks a much simpler solution to swap those lines.
I'll check it doesn't (unexpectedly) break anything else and add it for the 
next release.

Thanks.

-- 
Primary key fingerprint: AD8F BDC0 5A2C FD5F A179  60E7 F79B AB04 5299 EC56


signature.asc
Description: Digital signature