diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb new file mode 100644 index 00000000000..eabff067f75 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-bin/generate_sources.rb @@ -0,0 +1,48 @@ +# TODO share code with thunderbird-bin/generate_sources.rb + +require "open-uri" + +version = if ARGV.empty? + "latest" + else + ARGV[0] + end + +base_path = "http://download-installer.cdn.mozilla.net/pub/firefox/releases" + +Source = Struct.new(:hash, :arch, :locale, :filename) + +sources = open("#{base_path}/#{version}/SHA1SUMS") do |input| + input.readlines +end.select do |line| + /\/firefox-.*\.tar\.bz2$/ === line && !(/source/ === line) +end.map do |line| + hash, name = line.chomp.split(/ +/) + Source.new(hash, *(name.split("/"))) +end.sort_by do |source| + [source.locale, source.arch] +end + +real_version = sources[0].filename.match(/firefox-([0-9.]*)\.tar\.bz2/)[1] + +arches = ["linux-i686", "linux-x86_64"] + +puts(<<"EOH") +# This file is generated from generate_nix.rb. DO NOT EDIT. +# Execute the following command in a temporary directory to update the file. +# +# ruby generate_source.rb > source.nix + +{ + version = "#{real_version}"; + sources = [ +EOH + +sources.each do |source| + puts(%Q| { locale = "#{source.locale}"; arch = "#{source.arch}"; sha1 = "#{source.hash}"; }|) +end + +puts(<<'EOF') + ]; +} +EOF |