Sha256: 9d4074fa6654a2772faf4cc2a47c531d7c93da03db1cdd0515a48bacb070bace

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

require 'bundler/gem_tasks'

begin
  require 'rspec/core/rake_task'
  RSpec::Core::RakeTask.new(:spec)
  task :default => :spec
rescue LoadError
  # no rspec available
end

desc 'Download the latest copy of the wireshark manufacturers database'
task :update_wireshark => [:environment] do
  require 'net/http'

  begin
    new_file = Net::HTTP.get(URI('https://gitlab.com/wireshark/wireshark/raw/master/manuf'))
    File.write(Louis::ORIGINAL_OUI_FILE, new_file)
    puts 'Update complete'
  rescue => err
    puts "An error occurred while downloading the file: #{err.class} -> #{err.message}"
  end
end

desc 'Pre-parse the source file into the parsed file'
task :parse_data_file => [:environment] do
  lookup_table = {}

  File.open(Louis::ORIGINAL_OUI_FILE).each_line do |line|
    next unless (res = Louis::Helpers.line_parser(line))

    lookup_table[res['mask']] ||= {}
    lookup_table[res['mask']][res['prefix'].to_s] = {
      's' => res['short_vendor'],
      'l' => res['long_vendor']
    }.compact
  end

  File.write(Louis::PARSED_DATA_FILE, JSON.generate(lookup_table))
end

desc 'Do a full data update'
task :update => [:update_wireshark, :parse_data_file]

task :environment do
  base_path = File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
  $LOAD_PATH.unshift(base_path) unless $LOAD_PATH.include?(base_path)

  require 'louis'
end

desc 'Start a pry session with the code loaded'
task :console => [:environment] do
  require 'pry'
  pry
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
louis-2.3.7 Rakefile
louis-2.3.6 Rakefile
louis-2.3.5 Rakefile
louis-2.3.4 Rakefile
louis-2.3.3 Rakefile
louis-2.3.2 Rakefile