aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/__fish_complete_tar.fish
blob: 91a79501575248d5781951c2ceebc3b9846b78fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

function __fish_complete_tar -d "Peek inside of archives and list all files"

	set -l cmd (commandline -poc)
	set -e cmd[1]
	for i in $cmd
		switch $i
			case '-*'
				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'
				if test -f $i
					set -l file_list (tar -t <$i)
					printf (_ "%s\tArchived file\n") $file_list
				end
				return
		end
	end
end