summaryrefslogtreecommitdiff
path: root/gen-installed-chrome.sh
blob: 21c4dbac759145f81ff1bbcf63251553c7710b2b (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
36
37
38
39
40
41
#!/bin/sh

[ $# -gt 1 ] || exit 1

TYPE="$1"
shift

find_dir() {
	while read DIR; do
		for D in $(find -type d -name $DIR); do
			echo "$TYPE,install,url,jar:resource:/chrome/$JAR!${D#.}/"
			echo "$TYPE,install,url,jar:resource:/chrome/$JAR!$(dirname ${D#.})/" | sed 's@///*@/@g'
		done
	done
}

while [ -n "$1" ]; do
	DIR=$(mktemp -d unzip.XXXXXX)
	cd $DIR
	unzip -qq ../$1 || exit 2
	JAR=$(basename $1)
	
	find -name contents.rdf \
		| xargs cat \
		| perl -pi -e '
			$txt .= $_;
			$_ = undef; 
			END { 
				while( $txt =~ s/<chrome:packages>(.*?)<\/chrome:packages>//s ) {
					$t = $1;
					while ( $t =~ s/<RDF:li\s+resource=".*:(\S+?)"// ) {
						print $1 ."\n";
					}
				}
			}' | find_dir | sort -u
	cd ..
	rm -rf $DIR
	shift
done

# vim: ts=4:sw=4