Re: Proposed change to base-files /etc/bash.bashrc: see whether PS1 has already been set
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
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
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