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.
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/