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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/ChangeLog.md +25 -0
  4. data/Gemfile +1 -1
  5. data/README.md +2 -2
  6. data/gemspec.yml +1 -1
  7. data/lib/ronin/core/class_registry.rb +1 -1
  8. data/lib/ronin/core/cli/banner.rb +60 -0
  9. data/lib/ronin/core/cli/command.rb +1 -1
  10. data/lib/ronin/core/cli/command_shell/command.rb +1 -1
  11. data/lib/ronin/core/cli/command_shell.rb +12 -1
  12. data/lib/ronin/core/cli/completion_command.rb +204 -0
  13. data/lib/ronin/core/cli/generator/options/author.rb +1 -1
  14. data/lib/ronin/core/cli/generator/options/description.rb +1 -1
  15. data/lib/ronin/core/cli/generator/options/reference.rb +1 -1
  16. data/lib/ronin/core/cli/generator/options/summary.rb +1 -1
  17. data/lib/ronin/core/cli/generator.rb +1 -1
  18. data/lib/ronin/core/cli/help/banner.rb +49 -0
  19. data/lib/ronin/core/cli/logging.rb +3 -3
  20. data/lib/ronin/core/cli/options/param.rb +1 -1
  21. data/lib/ronin/core/cli/options/values/arches.rb +1 -1
  22. data/lib/ronin/core/cli/options/values/oses.rb +1 -1
  23. data/lib/ronin/core/cli/printing/arch.rb +1 -1
  24. data/lib/ronin/core/cli/printing/metadata.rb +33 -8
  25. data/lib/ronin/core/cli/printing/os.rb +1 -1
  26. data/lib/ronin/core/cli/printing/params.rb +30 -1
  27. data/lib/ronin/core/cli/ruby_shell.rb +6 -2
  28. data/lib/ronin/core/cli/shell.rb +6 -1
  29. data/lib/ronin/core/git.rb +1 -1
  30. data/lib/ronin/core/home.rb +1 -1
  31. data/lib/ronin/core/metadata/authors/author.rb +55 -15
  32. data/lib/ronin/core/metadata/authors.rb +4 -1
  33. data/lib/ronin/core/metadata/description.rb +1 -1
  34. data/lib/ronin/core/metadata/id.rb +1 -1
  35. data/lib/ronin/core/metadata/references.rb +1 -1
  36. data/lib/ronin/core/metadata/summary.rb +1 -1
  37. data/lib/ronin/core/metadata/version.rb +1 -1
  38. data/lib/ronin/core/output_formats/csv.rb +58 -0
  39. data/lib/ronin/core/output_formats/json.rb +90 -0
  40. data/lib/ronin/core/output_formats/ndjson.rb +55 -0
  41. data/lib/ronin/core/output_formats/output_dir.rb +93 -0
  42. data/lib/ronin/core/output_formats/output_file.rb +89 -0
  43. data/lib/ronin/core/output_formats/output_format.rb +48 -0
  44. data/lib/ronin/core/output_formats/txt.rb +50 -0
  45. data/lib/ronin/core/output_formats.rb +89 -0
  46. data/lib/ronin/core/params/exceptions.rb +1 -1
  47. data/lib/ronin/core/params/mixin.rb +1 -1
  48. data/lib/ronin/core/params/param.rb +1 -1
  49. data/lib/ronin/core/params/types/boolean.rb +1 -1
  50. data/lib/ronin/core/params/types/enum.rb +1 -1
  51. data/lib/ronin/core/params/types/float.rb +1 -1
  52. data/lib/ronin/core/params/types/integer.rb +1 -1
  53. data/lib/ronin/core/params/types/numeric.rb +1 -1
  54. data/lib/ronin/core/params/types/regexp.rb +1 -1
  55. data/lib/ronin/core/params/types/string.rb +1 -1
  56. data/lib/ronin/core/params/types/type.rb +1 -1
  57. data/lib/ronin/core/params/types/uri.rb +1 -1
  58. data/lib/ronin/core/params/types.rb +1 -1
  59. data/lib/ronin/core/params.rb +1 -1
  60. data/lib/ronin/core/system.rb +144 -0
  61. data/lib/ronin/core/version.rb +2 -2
  62. 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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
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.1.3'
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.1.3
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-20 00:00:00.000000000 Z
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.4'
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.4'
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/