2006-11-03 07:55:48 +08:00
|
|
|
|
|
|
|
function __fish_complete_tar -d "Peek inside of archives and list all files"
|
|
|
|
|
2016-11-28 13:27:22 +08:00
|
|
|
set -l cmd (commandline -poc)
|
|
|
|
set -e cmd[1]
|
|
|
|
for i in $cmd
|
|
|
|
switch $i
|
|
|
|
case '-*'
|
|
|
|
continue
|
2006-11-03 07:55:48 +08:00
|
|
|
|
2016-11-28 13:27:22 +08:00
|
|
|
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
|
2006-11-03 07:55:48 +08:00
|
|
|
|
2016-11-28 13:27:22 +08:00
|
|
|
case '*.tar.gz' '*.tgz'
|
|
|
|
if test -f $i
|
|
|
|
set -l file_list (tar -it <$i)
|
|
|
|
printf (_ "%s\tArchived file\n") $file_list
|
|
|
|
end
|
|
|
|
return
|
2017-01-16 06:51:10 +08:00
|
|
|
|
2017-01-06 02:11:38 +08:00
|
|
|
case '*.tar.xz'
|
|
|
|
if test -f $i
|
|
|
|
set -l file_list (tar -Jt <$i)
|
|
|
|
printf (_ "%s\tArchived file\n") $file_list
|
|
|
|
end
|
|
|
|
return
|
2006-11-03 07:55:48 +08:00
|
|
|
|
2016-11-28 13:27:22 +08:00
|
|
|
case '*.tar'
|
|
|
|
if test -f $i
|
|
|
|
set -l file_list (tar -t <$i)
|
|
|
|
printf (_ "%s\tArchived file\n") $file_list
|
|
|
|
end
|
|
|
|
return
|
|
|
|
end
|
|
|
|
end
|
2006-11-03 07:55:48 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
|