mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-12-23 11:29:01 +00:00
Fix #481 - Use $SHELL instead of sh in execute action
Note that $SHELL only points to the default shell instead of the current shell. If you're on a non-default shell, you might want to override the value like follows. SHELL=zsh fzf --bind 'enter:execute:echo $ZSH_VERSION; sleep 1'
This commit is contained in:
parent
1893eca41a
commit
30bd0b53db
@ -720,7 +720,11 @@ func quoteEntry(entry string) string {
|
|||||||
|
|
||||||
func executeCommand(template string, replacement string) {
|
func executeCommand(template string, replacement string) {
|
||||||
command := strings.Replace(template, "{}", replacement, -1)
|
command := strings.Replace(template, "{}", replacement, -1)
|
||||||
cmd := exec.Command("sh", "-c", command)
|
shell := os.Getenv("SHELL")
|
||||||
|
if len(shell) == 0 {
|
||||||
|
shell = "sh"
|
||||||
|
}
|
||||||
|
cmd := exec.Command(shell, "-c", command)
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
@ -893,6 +893,22 @@ class TestGoFZF < TestBase
|
|||||||
File.unlink output rescue nil
|
File.unlink output rescue nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_execute_shell
|
||||||
|
# Custom script to use as $SHELL
|
||||||
|
output = tempname + '.out'
|
||||||
|
File.unlink output rescue nil
|
||||||
|
writelines tempname, ['#!/usr/bin/env bash', "echo $1 / $2 > #{output}"]
|
||||||
|
system "chmod +x #{tempname}"
|
||||||
|
|
||||||
|
tmux.send_keys "echo foo | SHELL=#{tempname} fzf --bind 'enter:execute:{}bar'", :Enter
|
||||||
|
tmux.until { |lines| lines[-2].include? '1/1' }
|
||||||
|
tmux.send_keys :Enter
|
||||||
|
tmux.send_keys 'C-c'
|
||||||
|
assert_equal ['-c / "foo"bar'], File.readlines(output).map(&:chomp)
|
||||||
|
ensure
|
||||||
|
File.unlink output rescue nil
|
||||||
|
end
|
||||||
|
|
||||||
def test_cycle
|
def test_cycle
|
||||||
tmux.send_keys "seq 8 | #{fzf :cycle}", :Enter
|
tmux.send_keys "seq 8 | #{fzf :cycle}", :Enter
|
||||||
tmux.until { |lines| lines[-2].include? '8/8' }
|
tmux.until { |lines| lines[-2].include? '8/8' }
|
||||||
|
Loading…
Reference in New Issue
Block a user