Sha256: da85ba99cb7f14e47e9ba591b172ed1ce20b87d21382ee4f5c08843cd98f4449
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true require "json" require "thor" module WhatWeb class CLI < Thor desc "scan URL", "Scan against a given URL" method_options aggressive: :boolean, default: false def scan(url) is_aggressive = options[:aggressive] with_error_handling do hash = execute_plugins(url, is_aggressive) puts hash.to_json end end desc "list_plugins", "List all plugins" def list_plugins with_error_handling do puts plugin_names.to_json end end no_commands do def execute_plugins(url, is_aggressive = false) plugins = PluginManager.instance.load_plugins target = Target.new(url) results = {} plugins.each do |name, plugin| result = plugin.execute(target, is_aggressive) results[name] = result unless result.empty? end results end def plugin_names plugins = PluginManager.instance.load_plugins plugins.map do |name, plugin| { name: name, author: plugin.author.encode("UTF-8"), description: plugin.description.encode("UTF-8"), website: plugin.website, version: plugin.version } end end def with_error_handling yield rescue StandardError => e puts "Warning: #{e}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
simple_whatweb-0.2.1 | lib/whatweb/cli.rb |
simple_whatweb-0.2.0 | lib/whatweb/cli.rb |