Sha256: 10d31740afcd7ead5c809642ab16ec2adaa98d787eeb581152add2213abc228a

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

require "openssl"
require "net/http"

DOWNLOAD_DIR = File.absolute_path("tmp")
BIN_DIR = File.absolute_path("bin")
TIKA_VERSION = "1.7"
FITS_VERSION = "0.8.3"

tika_version = ENV["TIKA_VERSION"] || TIKA_VERSION
tika_path = File.join(BIN_DIR, "tika-app.jar")
tika_app = File.basename(tika_path)
tika_download_url = "http://archive.apache.org/dist/tika/tika-app-#{tika_version}.jar"
tika_checksum_url = "#{tika_download_url}.sha"
tika_checksum_type = :SHA1

fits_version = ENV["FITS_VERSION"] || FITS_VERSION
fits_path = File.join(BIN_DIR, "fits", "fits.sh")
fits_download_url = "http://projects.iq.harvard.edu/files/fits/files/fits-#{fits_version}.zip"

namespace :tika do
  desc "Download Tika app"
  task :download => [:download_dir] do
    FileUtils.cd(DOWNLOAD_DIR) do
      puts "Downloading Tika app ... "
      system "curl -L #{tika_download_url} -o #{tika_app}"
      checksum = Net::HTTP.get(URI(tika_checksum_url)).chomp
      puts "Verifiying checksum ... "
      digest = OpenSSL::Digest.const_get(tika_checksum_type).new
      digest << File.read(tika_app)
      if digest.to_s != checksum
        puts "Checksums do not match -- aborting!"
        FileUtils.remove_entry_secure(tika_app)
        abort
      end
      FileUtils.mv(tika_app, tika_path)
    end
  end
end

namespace :fits do
  desc "Download FITS tool"
  task :download => :download_dir do
    FileUtils.cd(DOWNLOAD_DIR) do
      puts "Downloading FITS tool ... "
      system "curl -L #{fits_download_url} -o fits.zip"
      system "unzip -a -o -q fits.zip"
      FileUtils.mv("fits-#{fits_version}", File.dirname(fits_path))
    end
    FileUtils.chmod(0755, fits_path)
  end
end

task :download_dir do
  FileUtils.mkdir(DOWNLOAD_DIR) unless Dir.exists?(DOWNLOAD_DIR)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ddr-filetools-0.4.0 lib/tasks/ddr_filetools.rake