mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 04:43:10 +00:00
Move __fish_print_make_targets into make completions
A function file for a function used only by one completion (and unlikely to be used anywhere else). If another user shows up, we can move it out again. Part of #5279 [ci skip]
This commit is contained in:
parent
9bd398b9fb
commit
a1380a736b
2 changed files with 33 additions and 33 deletions
|
@ -1,4 +1,37 @@
|
|||
# Completions for make
|
||||
function __fish_print_make_targets --argument-names directory file
|
||||
# Since we filter based on localized text, we need to ensure the
|
||||
# text will be using the correct locale.
|
||||
set -lx LC_ALL C
|
||||
|
||||
if test -z "$directory"
|
||||
set directory '.'
|
||||
end
|
||||
|
||||
if test -z "$file"
|
||||
for standard_file in $directory/{GNUmakefile,Makefile,makefile}
|
||||
if test -f $standard_file
|
||||
set file $standard_file
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
set -l bsd_make
|
||||
if make --version 2>/dev/null | string match -q 'GNU*'
|
||||
set bsd_make 0
|
||||
else
|
||||
set bsd_make 1
|
||||
end
|
||||
|
||||
if test "$bsd_make" = 0
|
||||
# https://stackoverflow.com/a/26339924
|
||||
make -C "$directory" -f "$file" -pRrq : 2>/dev/null | awk -v RS= -F: '/^# Files/,/^# Finished Make data base/ {if ($1 !~ "^[#.]") {print $1}}' 2>/dev/null
|
||||
else
|
||||
make -C "$directory" -f "$file" -d g1 -rn >/dev/null 2>| awk -F, '/^#\*\*\* Input graph:/,/^$/ {if ($1 !~ "^#... ") {gsub(/# /,"",$1); print $1}}' 2>/dev/null
|
||||
end
|
||||
end
|
||||
|
||||
function __fish_complete_make_targets
|
||||
set directory (string replace -r '^make .*(-C ?|--directory(=| +))([^ ]*) .*$' '$3' -- $argv)
|
||||
if not test $status -eq 0 -a -d $directory
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
function __fish_print_make_targets --argument-names directory file
|
||||
# Since we filter based on localized text, we need to ensure the
|
||||
# text will be using the correct locale.
|
||||
set -lx LC_ALL C
|
||||
|
||||
if test -z "$directory"
|
||||
set directory '.'
|
||||
end
|
||||
|
||||
if test -z "$file"
|
||||
for standard_file in $directory/{GNUmakefile,Makefile,makefile}
|
||||
if test -f $standard_file
|
||||
set file $standard_file
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
set -l bsd_make
|
||||
if make --version 2>/dev/null | string match -q 'GNU*'
|
||||
set bsd_make 0
|
||||
else
|
||||
set bsd_make 1
|
||||
end
|
||||
|
||||
if test "$bsd_make" = 0
|
||||
# https://stackoverflow.com/a/26339924
|
||||
make -C "$directory" -f "$file" -pRrq : 2>/dev/null | awk -v RS= -F: '/^# Files/,/^# Finished Make data base/ {if ($1 !~ "^[#.]") {print $1}}' 2>/dev/null
|
||||
else
|
||||
make -C "$directory" -f "$file" -d g1 -rn >/dev/null 2>| awk -F, '/^#\*\*\* Input graph:/,/^$/ {if ($1 !~ "^#... ") {gsub(/# /,"",$1); print $1}}' 2>/dev/null
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in a new issue