ronin-core 0.1.3 → 0.2.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/ChangeLog.md +25 -0
- data/Gemfile +1 -1
- data/README.md +2 -2
- data/gemspec.yml +1 -1
- data/lib/ronin/core/class_registry.rb +1 -1
- data/lib/ronin/core/cli/banner.rb +60 -0
- data/lib/ronin/core/cli/command.rb +1 -1
- data/lib/ronin/core/cli/command_shell/command.rb +1 -1
- data/lib/ronin/core/cli/command_shell.rb +12 -1
- data/lib/ronin/core/cli/completion_command.rb +204 -0
- data/lib/ronin/core/cli/generator/options/author.rb +1 -1
- data/lib/ronin/core/cli/generator/options/description.rb +1 -1
- data/lib/ronin/core/cli/generator/options/reference.rb +1 -1
- data/lib/ronin/core/cli/generator/options/summary.rb +1 -1
- data/lib/ronin/core/cli/generator.rb +1 -1
- data/lib/ronin/core/cli/help/banner.rb +49 -0
- data/lib/ronin/core/cli/logging.rb +3 -3
- data/lib/ronin/core/cli/options/param.rb +1 -1
- data/lib/ronin/core/cli/options/values/arches.rb +1 -1
- data/lib/ronin/core/cli/options/values/oses.rb +1 -1
- data/lib/ronin/core/cli/printing/arch.rb +1 -1
- data/lib/ronin/core/cli/printing/metadata.rb +33 -8
- data/lib/ronin/core/cli/printing/os.rb +1 -1
- data/lib/ronin/core/cli/printing/params.rb +30 -1
- data/lib/ronin/core/cli/ruby_shell.rb +6 -2
- data/lib/ronin/core/cli/shell.rb +6 -1
- data/lib/ronin/core/git.rb +1 -1
- data/lib/ronin/core/home.rb +1 -1
- data/lib/ronin/core/metadata/authors/author.rb +55 -15
- data/lib/ronin/core/metadata/authors.rb +4 -1
- data/lib/ronin/core/metadata/description.rb +1 -1
- data/lib/ronin/core/metadata/id.rb +1 -1
- data/lib/ronin/core/metadata/references.rb +1 -1
- data/lib/ronin/core/metadata/summary.rb +1 -1
- data/lib/ronin/core/metadata/version.rb +1 -1
- data/lib/ronin/core/output_formats/csv.rb +58 -0
- data/lib/ronin/core/output_formats/json.rb +90 -0
- data/lib/ronin/core/output_formats/ndjson.rb +55 -0
- data/lib/ronin/core/output_formats/output_dir.rb +93 -0
- data/lib/ronin/core/output_formats/output_file.rb +89 -0
- data/lib/ronin/core/output_formats/output_format.rb +48 -0
- data/lib/ronin/core/output_formats/txt.rb +50 -0
- data/lib/ronin/core/output_formats.rb +89 -0
- data/lib/ronin/core/params/exceptions.rb +1 -1
- data/lib/ronin/core/params/mixin.rb +1 -1
- data/lib/ronin/core/params/param.rb +1 -1
- data/lib/ronin/core/params/types/boolean.rb +1 -1
- data/lib/ronin/core/params/types/enum.rb +1 -1
- data/lib/ronin/core/params/types/float.rb +1 -1
- data/lib/ronin/core/params/types/integer.rb +1 -1
- data/lib/ronin/core/params/types/numeric.rb +1 -1
- data/lib/ronin/core/params/types/regexp.rb +1 -1
- data/lib/ronin/core/params/types/string.rb +1 -1
- data/lib/ronin/core/params/types/type.rb +1 -1
- data/lib/ronin/core/params/types/uri.rb +1 -1
- data/lib/ronin/core/params/types.rb +1 -1
- data/lib/ronin/core/params.rb +1 -1
- data/lib/ronin/core/system.rb +144 -0
- data/lib/ronin/core/version.rb +2 -2
- metadata +16 -4
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-core is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-core is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
module Ronin
|
20
|
+
module Core
|
21
|
+
module OutputFormats
|
22
|
+
#
|
23
|
+
# Base class for all output formats.
|
24
|
+
#
|
25
|
+
# @api semipublic
|
26
|
+
#
|
27
|
+
# @since 0.2.0
|
28
|
+
#
|
29
|
+
class OutputFormat
|
30
|
+
|
31
|
+
#
|
32
|
+
# Writes a value to the output format.
|
33
|
+
#
|
34
|
+
# @param [Object] value
|
35
|
+
# The output value object to write.
|
36
|
+
#
|
37
|
+
# @return [self]
|
38
|
+
#
|
39
|
+
# @abstract
|
40
|
+
#
|
41
|
+
def <<(value)
|
42
|
+
raise(NotImplementedError,"#{self.class}#<< was not implemented")
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-core is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-core is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ronin/core/output_formats/output_file'
|
20
|
+
|
21
|
+
module Ronin
|
22
|
+
module Core
|
23
|
+
module OutputFormats
|
24
|
+
#
|
25
|
+
# Represents a plain-text list of discovered values.
|
26
|
+
#
|
27
|
+
# @api semipublic
|
28
|
+
#
|
29
|
+
# @since 0.2.0
|
30
|
+
#
|
31
|
+
class TXT < OutputFile
|
32
|
+
|
33
|
+
#
|
34
|
+
# Appends a value to the list output stream.
|
35
|
+
#
|
36
|
+
# @param [#to_s] value
|
37
|
+
# The value to append.
|
38
|
+
#
|
39
|
+
# @return [self]
|
40
|
+
#
|
41
|
+
def <<(value)
|
42
|
+
@io.puts(value.to_s)
|
43
|
+
@io.flush
|
44
|
+
return self
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-core is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-core is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ronin/core/output_formats/txt'
|
20
|
+
require 'ronin/core/output_formats/csv'
|
21
|
+
require 'ronin/core/output_formats/json'
|
22
|
+
require 'ronin/core/output_formats/ndjson'
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module Core
|
26
|
+
#
|
27
|
+
# Contains common output file formats, such as {TXT txt}, {CSV csv},
|
28
|
+
# {JSON json}, and {NDJSON ndjson}.
|
29
|
+
#
|
30
|
+
module OutputFormats
|
31
|
+
#
|
32
|
+
# Adds {ClassMethods} to the other `OutputFormats` module which is
|
33
|
+
# including {Ronin::Core::OutputFormats}.
|
34
|
+
#
|
35
|
+
# @param [Module] output_formats
|
36
|
+
# The other `OutputFormats` module which is including {OutputFormats}.
|
37
|
+
#
|
38
|
+
def self.included(output_formats)
|
39
|
+
output_formats.extend ClassMethods
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Class methods which are added to another `OutputFormats` module
|
44
|
+
# when {Ronin::Core::OutputFormats} is included.
|
45
|
+
#
|
46
|
+
module ClassMethods
|
47
|
+
#
|
48
|
+
# Output formats grouped by name.
|
49
|
+
#
|
50
|
+
# @return [Hash{Symbol => Class<OutputFormat>}]
|
51
|
+
#
|
52
|
+
def formats
|
53
|
+
@formats ||= {}
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Output formats grouped by file extension.
|
58
|
+
#
|
59
|
+
# @return [Hash{String => Class<OutputFormat>}]
|
60
|
+
#
|
61
|
+
def file_exts
|
62
|
+
@file_exts ||= {}
|
63
|
+
end
|
64
|
+
|
65
|
+
#
|
66
|
+
# Registers a new output format.
|
67
|
+
#
|
68
|
+
def register(name,ext,output_format)
|
69
|
+
formats[name] = output_format
|
70
|
+
file_exts[ext] = output_format
|
71
|
+
end
|
72
|
+
|
73
|
+
#
|
74
|
+
# Infers the output format from the output file path.
|
75
|
+
#
|
76
|
+
# @param [String] path
|
77
|
+
# The output file path to infer the output format from.
|
78
|
+
#
|
79
|
+
# @return [Class<OutputFormat>, Class<TXT>]
|
80
|
+
# The inferred output format for the given path, or {TXT} if the
|
81
|
+
# output format could not be inferred.
|
82
|
+
#
|
83
|
+
def infer_from(path)
|
84
|
+
file_exts.fetch(File.extname(path),TXT)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
data/lib/ronin/core/params.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -0,0 +1,144 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-core is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-core is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-core. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'uri'
|
20
|
+
require 'fileutils'
|
21
|
+
|
22
|
+
module Ronin
|
23
|
+
module Core
|
24
|
+
#
|
25
|
+
# Utility methods for interacting with the system.
|
26
|
+
#
|
27
|
+
# @api semipublic
|
28
|
+
#
|
29
|
+
# @since 0.2.0
|
30
|
+
#
|
31
|
+
module System
|
32
|
+
#
|
33
|
+
# The detected Operating System type.
|
34
|
+
#
|
35
|
+
# @return [:linux, :macos, :freebsd, :openbsd, :netbsd, :windows, nil]
|
36
|
+
#
|
37
|
+
def self.os
|
38
|
+
@os ||= if RUBY_PLATFORM.include?('linux') then :linux
|
39
|
+
elsif RUBY_PLATFORM.include?('darwin') then :macos
|
40
|
+
elsif RUBY_PLATFORM.include?('freebsd') then :freebsd
|
41
|
+
elsif RUBY_PLATFORM.include?('openbsd') then :openbsd
|
42
|
+
elsif RUBY_PLATFORM.include?('netbsd') then :netbsd
|
43
|
+
elsif Gem.win_platform? then :windows
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
#
|
48
|
+
# The list of `bin/` directories containing executables.
|
49
|
+
#
|
50
|
+
# @return [Array<String>]
|
51
|
+
#
|
52
|
+
def self.paths
|
53
|
+
@paths ||= if ENV['PATH']
|
54
|
+
ENV['PATH'].split(File::PATH_SEPARATOR)
|
55
|
+
else
|
56
|
+
[]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
#
|
61
|
+
# Determines if a command is installed.
|
62
|
+
#
|
63
|
+
# @param [String] command
|
64
|
+
# The command name to search for.
|
65
|
+
#
|
66
|
+
# @return [Boolean]
|
67
|
+
# Indicates whether the command was found or not.
|
68
|
+
#
|
69
|
+
def self.installed?(command)
|
70
|
+
paths.any? do |bin_dir|
|
71
|
+
File.executable?(File.join(bin_dir,command))
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
#
|
76
|
+
# The detected download command.
|
77
|
+
#
|
78
|
+
# @return ['curl', 'wget', nil]
|
79
|
+
#
|
80
|
+
# @api private
|
81
|
+
#
|
82
|
+
def self.downloader
|
83
|
+
@downloader ||= if os == :macos then :curl
|
84
|
+
else
|
85
|
+
if installed?('wget') then :wget
|
86
|
+
elsif installed?('curl') then :curl
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
#
|
92
|
+
# Exception class that indicates a download failed.
|
93
|
+
#
|
94
|
+
class DownloadFailed < RuntimeError
|
95
|
+
end
|
96
|
+
|
97
|
+
#
|
98
|
+
# Downloads a file using either `curl` or `wget`.
|
99
|
+
#
|
100
|
+
# @param [URI::HTTP, String] url
|
101
|
+
# The URL to download.
|
102
|
+
#
|
103
|
+
# @param [String] dest
|
104
|
+
# The destination file or directory to download into.
|
105
|
+
#
|
106
|
+
# @return [String]
|
107
|
+
# The path to the downloaded file.
|
108
|
+
#
|
109
|
+
# @raise [DownloadFailed]
|
110
|
+
# The download failed or `curl`/`wget` could not be found on the system.
|
111
|
+
#
|
112
|
+
def self.download(url,dest)
|
113
|
+
uri = URI(url)
|
114
|
+
url = url.to_s
|
115
|
+
|
116
|
+
if File.directory?(dest)
|
117
|
+
dest = File.join(dest,File.basename(uri.path))
|
118
|
+
end
|
119
|
+
|
120
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
121
|
+
|
122
|
+
partial_dest = "#{dest}.part"
|
123
|
+
|
124
|
+
case downloader
|
125
|
+
when :wget
|
126
|
+
unless system('wget','-c','-O',partial_dest,url)
|
127
|
+
raise(DownloadFailed,"wget command failed: wget -c -O #{partial_dest} #{url}")
|
128
|
+
end
|
129
|
+
when :curl
|
130
|
+
unless system('curl','-f','-L','-C','-','-o',partial_dest,url)
|
131
|
+
raise(DownloadFailed,"curl command failed: curl -f -L -C - -o #{partial_dest} #{url}")
|
132
|
+
end
|
133
|
+
when nil
|
134
|
+
raise(DownloadFailed,"could not find 'curl' or 'wget' on the system")
|
135
|
+
else
|
136
|
+
raise(NotImplementedError,"downloader not supported: #{downloader.inspect}")
|
137
|
+
end
|
138
|
+
|
139
|
+
FileUtils.mv(partial_dest,dest)
|
140
|
+
return dest
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/lib/ronin/core/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2021-
|
3
|
+
# Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-core is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -19,6 +19,6 @@
|
|
19
19
|
module Ronin
|
20
20
|
module Core
|
21
21
|
# ronin-core version
|
22
|
-
VERSION = '0.
|
22
|
+
VERSION = '0.2.0.rc1'
|
23
23
|
end
|
24
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reline
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.5'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: irb
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,14 +93,17 @@ files:
|
|
93
93
|
- examples/test_shell.rb
|
94
94
|
- gemspec.yml
|
95
95
|
- lib/ronin/core/class_registry.rb
|
96
|
+
- lib/ronin/core/cli/banner.rb
|
96
97
|
- lib/ronin/core/cli/command.rb
|
97
98
|
- lib/ronin/core/cli/command_shell.rb
|
98
99
|
- lib/ronin/core/cli/command_shell/command.rb
|
100
|
+
- lib/ronin/core/cli/completion_command.rb
|
99
101
|
- lib/ronin/core/cli/generator.rb
|
100
102
|
- lib/ronin/core/cli/generator/options/author.rb
|
101
103
|
- lib/ronin/core/cli/generator/options/description.rb
|
102
104
|
- lib/ronin/core/cli/generator/options/reference.rb
|
103
105
|
- lib/ronin/core/cli/generator/options/summary.rb
|
106
|
+
- lib/ronin/core/cli/help/banner.rb
|
104
107
|
- lib/ronin/core/cli/logging.rb
|
105
108
|
- lib/ronin/core/cli/options/param.rb
|
106
109
|
- lib/ronin/core/cli/options/values/arches.rb
|
@@ -120,6 +123,14 @@ files:
|
|
120
123
|
- lib/ronin/core/metadata/references.rb
|
121
124
|
- lib/ronin/core/metadata/summary.rb
|
122
125
|
- lib/ronin/core/metadata/version.rb
|
126
|
+
- lib/ronin/core/output_formats.rb
|
127
|
+
- lib/ronin/core/output_formats/csv.rb
|
128
|
+
- lib/ronin/core/output_formats/json.rb
|
129
|
+
- lib/ronin/core/output_formats/ndjson.rb
|
130
|
+
- lib/ronin/core/output_formats/output_dir.rb
|
131
|
+
- lib/ronin/core/output_formats/output_file.rb
|
132
|
+
- lib/ronin/core/output_formats/output_format.rb
|
133
|
+
- lib/ronin/core/output_formats/txt.rb
|
123
134
|
- lib/ronin/core/params.rb
|
124
135
|
- lib/ronin/core/params/exceptions.rb
|
125
136
|
- lib/ronin/core/params/mixin.rb
|
@@ -134,6 +145,7 @@ files:
|
|
134
145
|
- lib/ronin/core/params/types/string.rb
|
135
146
|
- lib/ronin/core/params/types/type.rb
|
136
147
|
- lib/ronin/core/params/types/uri.rb
|
148
|
+
- lib/ronin/core/system.rb
|
137
149
|
- lib/ronin/core/version.rb
|
138
150
|
- ronin-core.gemspec
|
139
151
|
homepage: https://ronin-rb.dev/
|