aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMark Levedahl <mlevedahl@gmail.com>2025-04-06 18:20:14 -0400
committerTaylor Blau <me@ttaylorr.com>2025-05-23 17:04:23 -0400
commit02dd866ba9dfe6b6090b351450894489ca80311f (patch)
treecabc5d4577c128ae7713f7fba6930b7a0fe5bb0f /lib
parentgit-gui: make _shellpath usable on startup (diff)
downloadgit-02dd866ba9dfe6b6090b351450894489ca80311f.tar.gz
git-02dd866ba9dfe6b6090b351450894489ca80311f.zip
git-gui: use only the configured shell
git-gui has a few places where a bare "sh" is passed to exec, meaning that the first instance of "sh" on $PATH will be used rather than the shell configured. This violates expectations that the configured shell is being used. Let's use [shellpath] everywhere. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com> Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Taylor Blau <me@ttaylorr.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/sshkey.tcl3
-rw-r--r--lib/tools.tcl4
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/sshkey.tcl b/lib/sshkey.tcl
index 589ff8f78a..c0c5d1dad8 100644
--- a/lib/sshkey.tcl
+++ b/lib/sshkey.tcl
@@ -83,7 +83,8 @@ proc make_ssh_key {w} {
set sshkey_title [mc "Generating..."]
$w.header.gen configure -state disabled
- set cmdline [list sh -c {echo | ssh-keygen -q -t rsa -f ~/.ssh/id_rsa 2>&1}]
+ set cmdline [list [shellpath] -c \
+ {echo | ssh-keygen -q -t rsa -f ~/.ssh/id_rsa 2>&1}]
if {[catch { set sshkey_fd [_open_stdout_stderr $cmdline] } err]} {
error_popup [mc "Could not start ssh-keygen:\n\n%s" $err]
diff --git a/lib/tools.tcl b/lib/tools.tcl
index 413f1a1700..b86f72ed16 100644
--- a/lib/tools.tcl
+++ b/lib/tools.tcl
@@ -110,14 +110,14 @@ proc tools_exec {fullname} {
set cmdline $repo_config(guitool.$fullname.cmd)
if {[is_config_true "guitool.$fullname.noconsole"]} {
- tools_run_silent [list sh -c $cmdline] \
+ tools_run_silent [list [shellpath] -c $cmdline] \
[list tools_complete $fullname {}]
} else {
regsub {/} $fullname { / } title
set w [console::new \
[mc "Tool: %s" $title] \
[mc "Running: %s" $cmdline]]
- console::exec $w [list sh -c $cmdline] \
+ console::exec $w [list [shellpath] -c $cmdline] \
[list tools_complete $fullname $w]
}