mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-31 20:31:19 -03:00
Consolidate some calls to uname(1) around shell startup
Most versions of fish don't run any external processes at startup, except maybe fish_vcs_prompt. This changed recently with a couple additions of uname. This is probably fine but I guess we can reduce it down to one. This change feels somewhat wrong. Not sure. I guess we can remove it once we provide $OSTYPE. Note that this is also the reason why bindings don't use bind alt-backspace 'if test "$(uname)" = Darwin ...' We don't want to expose a private interface in "bind" output.
This commit is contained in:
@@ -4,12 +4,9 @@ if not type -q apropos
|
||||
exit
|
||||
end
|
||||
|
||||
# Check for macOS Catalina or above. This is Darwin 19.x or above. See unames reported here:
|
||||
# https://en.wikipedia.org/wiki/Darwin_(operating_system)
|
||||
set -l sysver (uname -sr | string match -r "(Darwin) (\d+)")
|
||||
|
||||
if test $status -eq 0 -a (count $sysver) -eq 3
|
||||
and test $sysver[2] = Darwin -a $sysver[3] -ge 19
|
||||
# Check for macOS Catalina or above.
|
||||
if test (__fish_uname) = Darwin
|
||||
and test (string match -r "(\d+)" "$(uname -r)") -ge 19
|
||||
and test -x /usr/libexec/makewhatis
|
||||
|
||||
set -l dir
|
||||
|
||||
@@ -21,7 +21,7 @@ function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mod
|
||||
$legacy_bind --preset $argv -k left backward-char
|
||||
|
||||
# Ctrl-left/right - these also work in vim.
|
||||
if set -q XPC_FLAGS || set -q __CFBundleIdentifier || test (uname) = Darwin
|
||||
if test (__fish_uname) = Darwin
|
||||
bind --preset $argv ctrl-right forward-token
|
||||
bind --preset $argv ctrl-left backward-token
|
||||
else
|
||||
@@ -61,7 +61,7 @@ function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mod
|
||||
|
||||
set -l alt_right_aliases alt-right \e\[1\;9C # iTerm2 < 3.5.12
|
||||
set -l alt_left_aliases alt-left \e\[1\;9D # iTerm2 < 3.5.12
|
||||
if set -q XPC_FLAGS || set -q __CFBundleIdentifier || test (uname) = Darwin
|
||||
if test (__fish_uname) = Darwin
|
||||
for alt_right in $alt_left_aliases
|
||||
bind --preset $argv $alt_right nextd-or-forward-word
|
||||
end
|
||||
|
||||
6
share/functions/__fish_uname.fish
Normal file
6
share/functions/__fish_uname.fish
Normal file
@@ -0,0 +1,6 @@
|
||||
function __fish_uname
|
||||
if not set -q __fish_uname
|
||||
set -g __fish_uname (uname)
|
||||
end
|
||||
echo -- $__fish_uname
|
||||
end
|
||||
@@ -55,7 +55,7 @@ function fish_default_key_bindings -d "emacs-like key binds"
|
||||
bind --preset $argv alt-u upcase-word
|
||||
|
||||
bind --preset $argv alt-c capitalize-word
|
||||
if set -q XPC_FLAGS || set -q __CFBundleIdentifier || test (uname) = Darwin
|
||||
if test (__fish_uname) = Darwin
|
||||
bind --preset $argv alt-backspace backward-kill-word
|
||||
bind --preset $argv ctrl-backspace backward-kill-token
|
||||
bind --preset $argv alt-delete kill-word
|
||||
|
||||
@@ -170,7 +170,7 @@ end
|
||||
|
||||
# Decide if git is safe to run.
|
||||
# On Darwin, git is pre-installed as a stub, which will pop a dialog if you run it.
|
||||
if string match -q Darwin -- (uname) && string match -q /usr/bin/git -- (command -s git) && type -q xcode-select && type -q xcrun
|
||||
if string match -q Darwin -- (__fish_uname) && string match -q /usr/bin/git -- (command -s git) && type -q xcode-select && type -q xcrun
|
||||
if not xcode-select --print-path &>/dev/null
|
||||
# Only the stub git is installed.
|
||||
# Do not try to run it.
|
||||
|
||||
Reference in New Issue
Block a user