chrome内のjarファイルを拡張機能の名前で解凍するperlスクリプト
firefoxの拡張機能を作りたいと思っているのですが、
もっといろんな拡張機能の中身を効率的に見たい!!
でも、ディレクトリ名が{45qiks8763jkyy}みたいな名前で全然わかりにくい。。
ということで、
/tmp/extensions の中の firebug といった拡張機能の名前のディレクトリに
firebug.jarを解凍してくれるperlスクリプト。
ただし、Linuxでしか動作しません。動作確認はFedoraCore6のみ。
それぞれの環境に合わせて適宜変えてください。^^;
って、機能のわりに制約多すぎてあんま存在意義なさそ。。まぁいいやw
#!/usr/bin/perl use File::Find; use File::Path; if (scalar @ARGV < 1) { die "You should input first arguments, firefox extensions directory."; } my $EXTENSION_DIR = $ARGV[0]; my $OUTPUT_DIR = $ARGV[1] || '/tmp/extensions'; my $DELETE_FORCE = $ARGV[2] || 0; find(\&unzip_jar, $EXTENSION_DIR); sub unzip_jar { my $jar_path = $File::Find::name; my $jar_name = $_; if ($jar_path =~ /extensions\/[^\/]+\/chrome\/[^\/]+\.jar/) { my ($ext_name) = $jar_name =~ /(.*)\.jar/; my $output = "$OUTPUT_DIR/$ext_name"; if (-d $output) { return if !$DELETE_FORCE; } else { File::Path::mkpath($output) unless (-d $output); system("unzip $jar_path -d $output"); } } }
使い方
./unpack_extensions.pl /home/develop/.mozilla/firefox/qq23wse.default/extensions /tmp/extensions
というぐあいに、
第1引数に拡張機能までのパス、第2引数に出力ディレクトリを指定してください。
ちなみ、FedoraCore6にはunzipがデフォルトでは入ってません。
また、yumレポジトリにも無いので、
FedoraCore5用のパッケージをインストールする必要があります。
ftp://ftp.riken.go.jp/fedora/core/5/i386/os/Fedora/RPMS/lha-1.14i-19.2.1.i386.rpm
要注意。