Re: [HACKERS] alternate psql file locations
On 08/26/2012 10:13 PM, Bruce Momjian wrote: On Mon, Jan 2, 2012 at 11:18:47AM -0500, Andrew Dunstan wrote: It's worked for things I've wanted, I haven't tried it for psql stuff Yeah, but it's a bit hacky. I might well not want $HOME reset. Here's a small patch that does what I think would suit me and Alvaro. Incidentally, this actually doesn't work anyway. psql gets the home path from getpwuid() and ignores $HOME. You could argue that that's a bug, but it's been that way for a long time. So, do we want to fix this and honor $HOME? Not really. Mangling it is a nasty hack anyway. Meanwhile see the subsequent 9.2 feature (described thus in the release notes): * Provide environment variable overrides for psql history and startup file locations (Andrew Dunstan) Specifically, PSQL_HISTORY and PSQLRC determine these file names if set. cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] alternate psql file locations
On Mon, Jan 2, 2012 at 11:18:47AM -0500, Andrew Dunstan wrote: > >>It's worked for things I've wanted, I haven't tried it for psql > >>stuff > >> > > > > > >Yeah, but it's a bit hacky. I might well not want $HOME reset. > >Here's a small patch that does what I think would suit me and > >Alvaro. > > > > > > Incidentally, this actually doesn't work anyway. psql gets the home > path from getpwuid() and ignores $HOME. You could argue that that's > a bug, but it's been that way for a long time. So, do we want to fix this and honor $HOME? -- Bruce Momjian http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] alternate psql file locations
On 01/01/2012 04:05 PM, Andrew Dunstan wrote: On 12/31/2011 04:26 PM, Aidan Van Dyk wrote: On Sat, Dec 31, 2011 at 3:17 PM, Alvaro Herrera wrote: Excerpts from Andrew Dunstan's message of sáb dic 31 12:52:02 -0300 2011: It's not a big thing, but I just found myself in a shared environment wanting to be able to set alternative locations for the psql startup file and history. I know there's the HISTFILE variable, but I can't easily set that automatically unless I can at least have my own .psqlrc. ISTM it should be a fairly simple thing to provide these, via environment variables. Is there general interest in such a thing? I wanted such a thing mere two weeks ago ... Generally when I've wanted these things, I just make a new "$HOME" in my shared user home dir: export HOME=$HOME/aidan It's worked for things I've wanted, I haven't tried it for psql stuff Yeah, but it's a bit hacky. I might well not want $HOME reset. Here's a small patch that does what I think would suit me and Alvaro. Incidentally, this actually doesn't work anyway. psql gets the home path from getpwuid() and ignores $HOME. You could argue that that's a bug, but it's been that way for a long time. cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] alternate psql file locations
On 12/31/2011 04:26 PM, Aidan Van Dyk wrote: On Sat, Dec 31, 2011 at 3:17 PM, Alvaro Herrera wrote: Excerpts from Andrew Dunstan's message of sáb dic 31 12:52:02 -0300 2011: It's not a big thing, but I just found myself in a shared environment wanting to be able to set alternative locations for the psql startup file and history. I know there's the HISTFILE variable, but I can't easily set that automatically unless I can at least have my own .psqlrc. ISTM it should be a fairly simple thing to provide these, via environment variables. Is there general interest in such a thing? I wanted such a thing mere two weeks ago ... Generally when I've wanted these things, I just make a new "$HOME" in my shared user home dir: export HOME=$HOME/aidan It's worked for things I've wanted, I haven't tried it for psql stuff Yeah, but it's a bit hacky. I might well not want $HOME reset. Here's a small patch that does what I think would suit me and Alvaro. cheers andrew *** a/doc/src/sgml/ref/psql-ref.sgml --- b/doc/src/sgml/ref/psql-ref.sgml *** *** 3300,3305 PSQL_EDITOR_LINENUMBER_ARG='--line ' --- 3300,3325 + PSQL_HISTORY + + + + Alternative location for the command history file. Tilde ("~") expansion is performed. + + + + + + PSQLRC + + + + Alternative location of the user's .psqlrc file. Tilde ("~") expansion is performed. + + + + + SHELL *** *** 3349,3354 PSQL_EDITOR_LINENUMBER_ARG='--line ' --- 3369,3379 to set up the client or the server to taste (using the \set and SET commands). + + The location of the user's ~/.psqlrc file can + also be set explicitly via the PSQLRC environment + setting. + *** *** 3370,3375 PSQL_EDITOR_LINENUMBER_ARG='--line ' --- 3395,3405 ~/.psql_history, or %APPDATA%\postgresql\psql_history on Windows. + + The location of the history file can + also be set explicitly via the PSQL_HISTORY environment + setting. + *** a/src/bin/psql/input.c --- b/src/bin/psql/input.c *** *** 285,290 initializeInput(int flags) --- 285,299 history_lines_added = 0; histfile = GetVariable(pset.vars, "HISTFILE"); + + if (histfile == NULL) + { + char * envhist; + envhist = getenv("PSQL_HISTORY"); + if (envhist != NULL && strlen(envhist) > 0) + histfile = envhist; + } + if (histfile == NULL) { if (get_home_path(home)) *** a/src/bin/psql/startup.c --- b/src/bin/psql/startup.c *** *** 575,580 process_psqlrc(char *argv0) --- 575,581 char rc_file[MAXPGPATH]; char my_exec_path[MAXPGPATH]; char etc_path[MAXPGPATH]; + char *envrc; find_my_exec(argv0, my_exec_path); get_etc_path(my_exec_path, etc_path); *** *** 582,588 process_psqlrc(char *argv0) snprintf(rc_file, MAXPGPATH, "%s/%s", etc_path, SYSPSQLRC); process_psqlrc_file(rc_file); ! if (get_home_path(home)) { snprintf(rc_file, MAXPGPATH, "%s/%s", home, PSQLRC); process_psqlrc_file(rc_file); --- 583,596 snprintf(rc_file, MAXPGPATH, "%s/%s", etc_path, SYSPSQLRC); process_psqlrc_file(rc_file); ! envrc = getenv("PSQLRC"); ! ! if (envrc != NULL && strlen(envrc) > 0) ! { ! expand_tilde(&envrc); ! process_psqlrc_file(envrc); ! } ! else if (get_home_path(home)) { snprintf(rc_file, MAXPGPATH, "%s/%s", home, PSQLRC); process_psqlrc_file(rc_file); -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] alternate psql file locations
On Sat, Dec 31, 2011 at 3:17 PM, Alvaro Herrera wrote: > > Excerpts from Andrew Dunstan's message of sáb dic 31 12:52:02 -0300 2011: >> It's not a big thing, but I just found myself in a shared environment >> wanting to be able to set alternative locations for the psql startup >> file and history. I know there's the HISTFILE variable, but I can't >> easily set that automatically unless I can at least have my own .psqlrc. >> ISTM it should be a fairly simple thing to provide these, via >> environment variables. Is there general interest in such a thing? > > I wanted such a thing mere two weeks ago ... Generally when I've wanted these things, I just make a new "$HOME" in my shared user home dir: export HOME=$HOME/aidan It's worked for things I've wanted, I haven't tried it for psql stuff a. -- Aidan Van Dyk Create like a god, ai...@highrise.ca command like a king, http://www.highrise.ca/ work like a slave. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] alternate psql file locations
Excerpts from Andrew Dunstan's message of sáb dic 31 12:52:02 -0300 2011: > It's not a big thing, but I just found myself in a shared environment > wanting to be able to set alternative locations for the psql startup > file and history. I know there's the HISTFILE variable, but I can't > easily set that automatically unless I can at least have my own .psqlrc. > ISTM it should be a fairly simple thing to provide these, via > environment variables. Is there general interest in such a thing? I wanted such a thing mere two weeks ago ... -- Álvaro Herrera The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] alternate psql file locations
It's not a big thing, but I just found myself in a shared environment wanting to be able to set alternative locations for the psql startup file and history. I know there's the HISTFILE variable, but I can't easily set that automatically unless I can at least have my own .psqlrc. ISTM it should be a fairly simple thing to provide these, via environment variables. Is there general interest in such a thing? cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers