ronin-core 0.1.3 → 0.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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/
|