appsignal/appsignal

View on GitHub
ext/Rakefile

Summary

Maintainability
Test Coverage
require File.expand_path("../base.rb", __FILE__)

def local_build?
  File.exist?(ext_path("appsignal-agent")) &&
    (
      File.exist?(ext_path("libappsignal.dylib")) ||
      File.exist?(ext_path("libappsignal.so"))
    ) &&
    File.exist?(ext_path("appsignal.h"))
end

task :default do
  begin
    library_type = "dynamic"
    report["language"]["implementation"] = "jruby"
    report["build"]["library_type"] = library_type
    next unless check_architecture

    if local_build?
      report["build"]["source"] = "local"
    else
      archive = download_archive(library_type)
      next unless archive
      next unless verify_archive(archive, library_type)
      unarchive(archive)
    end
    successful_installation
  rescue => error
    fail_installation_with_error(error)
  ensure
    create_dummy_makefile unless installation_succeeded?
    write_report
  end
end