Update tar completion

* Fix gzip archive files completion
* Let tar auto detect file type
This commit is contained in:
Sam Yu 2018-04-13 23:19:01 +08:00 committed by Fabian Homborg
parent e03db61dac
commit 408cdba1be

View file

@ -1,42 +1,21 @@
function __fish_complete_tar -d "Peek inside of archives and list all files" function __fish_complete_tar -d "Peek inside of archives and list all files"
set -l cmd (commandline -poc) set -l args (commandline -poc)
set -e cmd[1] while count $args >/dev/null
for i in $cmd switch $args[1]
switch $i case '-*f' '--file'
case '-*' set -e args[1]
if test -f $args[1]
set -l file_list (tar -atf $args[1] ^ /dev/null)
if test -n "$file_list"
printf (_ "%s\tArchived file\n") $file_list
end
return
end
case '*'
set -e args[1]
continue continue
case '*.tar.bz' '*.tar.bz2' '*.tbz' '*.tbz2'
if test -f $i
set -l file_list (tar -jt <$i)
printf (_ "%s\tArchived file\n") $file_list
end
return
case '*.tar.gz' '*.tgz'
if test -f $i
set -l file_list (tar -it <$i)
printf (_ "%s\tArchived file\n") $file_list
end
return
case '*.tar.xz'
if test -f $i
set -l file_list (tar -Jt <$i)
printf (_ "%s\tArchived file\n") $file_list
end
return
case '*.tar'
if test -f $i
set -l file_list (tar -t <$i)
printf (_ "%s\tArchived file\n") $file_list
end
return
end end
end end
end end