ronin-repos 0.1.0.beta1 → 0.1.1

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +15 -0
  3. data/.rubocop.yml +17 -0
  4. data/.yardopts +1 -1
  5. data/ChangeLog.md +13 -1
  6. data/Gemfile +7 -3
  7. data/README.md +2 -1
  8. data/Rakefile +2 -2
  9. data/bin/ronin-repos +7 -8
  10. data/data/templates/repo/README.md.erb +1 -1
  11. data/gemspec.yml +2 -2
  12. data/lib/ronin/repos/cache_dir.rb +6 -7
  13. data/lib/ronin/repos/class_dir.rb +18 -12
  14. data/lib/ronin/repos/cli/command.rb +5 -3
  15. data/lib/ronin/repos/cli/commands/install.rb +6 -2
  16. data/lib/ronin/repos/cli/commands/list.rb +1 -1
  17. data/lib/ronin/repos/cli/commands/new.rb +2 -2
  18. data/lib/ronin/repos/cli/commands/purge.rb +16 -1
  19. data/lib/ronin/repos/cli/commands/remove.rb +1 -1
  20. data/lib/ronin/repos/cli/commands/update.rb +1 -1
  21. data/lib/ronin/repos/cli.rb +6 -1
  22. data/lib/ronin/repos/exceptions.rb +4 -4
  23. data/lib/ronin/repos/repository.rb +4 -4
  24. data/lib/ronin/repos/root.rb +1 -1
  25. data/lib/ronin/repos/version.rb +2 -2
  26. data/lib/ronin/repos.rb +5 -5
  27. data/man/ronin-repos-install.1 +16 -12
  28. data/man/ronin-repos-install.1.md +13 -10
  29. data/man/ronin-repos-list.1 +16 -12
  30. data/man/ronin-repos-list.1.md +13 -10
  31. data/man/ronin-repos-new.1 +5 -1
  32. data/man/ronin-repos-new.1.md +30 -0
  33. data/man/ronin-repos-purge.1 +16 -12
  34. data/man/ronin-repos-purge.1.md +13 -10
  35. data/man/ronin-repos-remove.1 +12 -12
  36. data/man/ronin-repos-remove.1.md +10 -10
  37. data/man/ronin-repos-update.1 +16 -12
  38. data/man/ronin-repos-update.1.md +13 -10
  39. data/man/ronin-repos.1 +36 -10
  40. data/man/ronin-repos.1.md +28 -8
  41. data/ronin-repos.gemspec +6 -4
  42. metadata +8 -26
  43. data/spec/cache_dir_spec.rb +0 -272
  44. data/spec/class_dir_spec.rb +0 -97
  45. data/spec/fixtures/cache/repo1/dir/file1.txt +0 -0
  46. data/spec/fixtures/cache/repo1/file1.txt +0 -0
  47. data/spec/fixtures/cache/repo1/file2.txt +0 -0
  48. data/spec/fixtures/cache/repo2/dir/file1.txt +0 -0
  49. data/spec/fixtures/cache/repo2/dir/file2.txt +0 -0
  50. data/spec/fixtures/cache/repo2/file1.txt +0 -0
  51. data/spec/fixtures/cache/repo2/file2.txt +0 -0
  52. data/spec/fixtures/cache/repo2/only-exists-in-repo2.txt +0 -0
  53. data/spec/fixtures/class_dir/file1.rb +0 -0
  54. data/spec/fixtures/class_dir/file2.rb +0 -0
  55. data/spec/fixtures/class_dir/only_in_class_dir.rb +0 -0
  56. data/spec/repos_spec.rb +0 -67
  57. data/spec/repository_spec.rb +0 -415
  58. data/spec/spec_helper.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cdb6ec92ec228ed94c0dffd11a4bf18deed273cc583d2f004a14def0350d1cf
4
- data.tar.gz: 654d9319ac2ef706f48ae1b857578869e966a182c2f714123bc860fd2a33c0d8
3
+ metadata.gz: 5f165cb9c5c8eda828d18f33114a9407ccae14fb6d5a7edc84fbc5159ba26aad
4
+ data.tar.gz: 6518e8a7dc2b29c778bf82d8ce32efc692e85b0d3ab108f3575724181b689bd4
5
5
  SHA512:
6
- metadata.gz: a5620e26ab2f1bbcda24a33859191a75217e07c8ff7666597ec0278147f26988cc15c569efd4eec3dabf954821e3d2dc8cf2f06b90a38223683a66e6ac4b2159
7
- data.tar.gz: d4660c329f3674884c038bae87529d3e89f39e0c675f6584802cf504d83feb476dc5485e4619123a4bd7c05d9e4ed71a420ba87a1356da7aea0e9678d369bb88
6
+ metadata.gz: 0a827887a127c7a8165087e71cd3e8098b154f1ecd72dd0136f66ef640562db59a401ded921ac74877a981974ab16570cc431850f12f8d184291b5834c9d998d
7
+ data.tar.gz: 4c6e43043c8a93b69b0f55a1a8016e6014e4343b338b90b9a85d6cc9477b93f8c413d5e3d98bf71bf39115731a13bdfc4e3a46e2d40aa9302029089edf502b6c
@@ -21,7 +21,22 @@ jobs:
21
21
  uses: ruby/setup-ruby@v1
22
22
  with:
23
23
  ruby-version: ${{ matrix.ruby }}
24
+ bundler-cache: true
24
25
  - name: Install dependencies
25
26
  run: bundle install --jobs 4 --retry 3
26
27
  - name: Run tests
27
28
  run: bundle exec rake test
29
+
30
+ # rubocop linting
31
+ rubocop:
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v2
35
+ - name: Set up Ruby
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: 3.0
39
+ - name: Install dependencies
40
+ run: bundle install --jobs 4 --retry 3
41
+ - name: Run rubocop
42
+ run: bundle exec rubocop --parallel
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ AllCops:
2
+ NewCops: enable
3
+ SuggestExtensions: false
4
+ TargetRubyVersion: 3.1
5
+
6
+ inherit_gem:
7
+ rubocop-ronin: rubocop.yml
8
+
9
+ #
10
+ # ronin-repos specific exceptions
11
+ #
12
+
13
+ Lint/EmptyFile:
14
+ Exclude:
15
+ - 'spec/fixtures/class_dir/file1.rb'
16
+ - 'spec/fixtures/class_dir/file2.rb'
17
+ - 'spec/fixtures/class_dir/only_in_class_dir.rb'
data/.yardopts CHANGED
@@ -1 +1 @@
1
- --markup markdown --title 'Ronin Repos Documentation' --protected
1
+ --markup markdown --title 'Ronin::Repos Documentation' --protected
data/ChangeLog.md CHANGED
@@ -1,4 +1,16 @@
1
- ### 0.1.0 / 2023-XX-XX
1
+ ### 0.1.1 / 2023-06-09
2
+
3
+ * Fixed a bug in {Ronin::Repos::ClassDir::ClassMethods#list_files} where the
4
+ {Ronin::Repos::ClassDir::ClassMethods#repo_class_dir repo_class_dir} was not
5
+ being removed from paths.
6
+ * Documentation fixes and improvements.
7
+
8
+ #### CLI
9
+
10
+ * Multiple bug fixes to the `ronin-repos install` command.
11
+ * Add missing man-page for the `ronin-repos new` command.
12
+
13
+ ### 0.1.0 / 2023-02-01
2
14
 
3
15
  * Initial release:
4
16
  * Supports installing any [Git][git] repository.
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
@@ -7,7 +9,7 @@ platform :jruby do
7
9
  end
8
10
 
9
11
  # Ronin dependencies:
10
- # gem 'ronin-core', '~> 0.1', github: "ronin-rb/ronin-core",
12
+ # gem 'ronin-core', '~> 0.1', github: 'ronin-rb/ronin-core',
11
13
  # branch: 'main'
12
14
 
13
15
  # gem 'command_kit', '~> 0.4', github: 'postmodern/command_kit.rb',
@@ -27,6 +29,8 @@ group :development do
27
29
  gem 'yard-spellcheck', require: false
28
30
 
29
31
  gem 'dead_end', require: false
30
- gem 'sord', require: false, platforms: :mri
31
- gem 'stackprof', require: false, platforms: :mri
32
+ gem 'sord', require: false, platform: :mri
33
+ gem 'stackprof', require: false, platform: :mri
34
+ gem 'rubocop', require: false, platform: :mri
35
+ gem 'rubocop-ronin', require: false, platform: :mri
32
36
  end
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/ronin-rb/ronin-repos/actions/workflows/ruby.yml/badge.svg)](https://github.com/ronin-rb/ronin-repos/actions/workflows/ruby.yml)
4
4
  [![Code Climate](https://codeclimate.com/github/ronin-rb/ronin-repos.svg)](https://codeclimate.com/github/ronin-rb/ronin-repos)
5
+ [![Gem Version](https://badge.fury.io/rb/ronin-repos.svg)](https://badge.fury.io/rb/ronin-repos)
5
6
 
6
7
  * [Website](https://ronin-rb.dev)
7
8
  * [Source](https://github.com/ronin-rb/ronin-repos)
@@ -137,7 +138,7 @@ gem 'ronin-repos', '~> 0.1'
137
138
 
138
139
  ## License
139
140
 
140
- Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
141
+ Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
141
142
 
142
143
  ronin-repos is free software: you can redistribute it and/or modify
143
144
  it under the terms of the GNU Lesser General Public License as published
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
- require 'rubygems'
1
+ # frozen_string_literal: true
2
2
 
3
3
  begin
4
4
  require 'bundler'
5
5
  rescue LoadError => e
6
6
  warn e.message
7
7
  warn "Run `gem install bundler` to install Bundler"
8
- exit -1
8
+ exit(-1)
9
9
  end
10
10
 
11
11
  begin
data/bin/ronin-repos CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
4
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
5
  #
5
6
  # This file is part of ronin-repos.
6
7
  #
@@ -21,13 +22,11 @@
21
22
  root = File.expand_path(File.join(__dir__,'..'))
22
23
  if File.file?(File.join(root,'Gemfile.lock'))
23
24
  Dir.chdir(root) do
24
- begin
25
- require 'bundler/setup'
26
- rescue LoadError => e
27
- warn e.message
28
- warn "Run `gem install bundler` to install Bundler"
29
- exit -1
30
- end
25
+ require 'bundler/setup'
26
+ rescue LoadError => e
27
+ warn e.message
28
+ warn "Run `gem install bundler` to install Bundler"
29
+ exit(-1)
31
30
  end
32
31
  end
33
32
 
@@ -5,7 +5,7 @@
5
5
  This git repository can be installed by the [ronin-repos] command:
6
6
 
7
7
  ```shell
8
- ronin-repos download https://github.com/<%= @github_user %>/<%= @name %>.git
8
+ ronin-repos install https://github.com/<%= @github_user %>/<%= @name %>.git
9
9
  ```
10
10
 
11
11
  [ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
data/gemspec.yml CHANGED
@@ -11,7 +11,7 @@ homepage: https://ronin-rb.dev
11
11
  has_yard: true
12
12
 
13
13
  metadata:
14
- documentation_uri: https://rubydoc.info/gems/ronin-repos
14
+ documentation_uri: https://ronin-rb.dev/docs/ronin-repos
15
15
  source_code_uri: https://github.com/ronin-rb/ronin-repos
16
16
  bug_tracker_uri: https://github.com/ronin-rb/ronin-repos/issues
17
17
  changelog_uri: https://github.com/ronin-rb/ronin-repos/blob/main/ChangeLog.md
@@ -30,7 +30,7 @@ required_ruby_version: ">= 3.0.0"
30
30
 
31
31
  dependencies:
32
32
  # Library dependencies:
33
- ronin-core: ~> 0.1.0.beta1
33
+ ronin-core: ~> 0.1
34
34
 
35
35
  development_dependencies:
36
36
  bundler: ~> 2.0
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -34,7 +34,7 @@ module Ronin
34
34
 
35
35
  include Enumerable
36
36
 
37
- # The ~/.cache/ronin-repos/ directory where all repos are stored.
37
+ # The `~/.cache/ronin-repos/` directory where all repos are stored.
38
38
  PATH = Core::Home.cache_dir('ronin-repos')
39
39
 
40
40
  # The path to the cache directory.
@@ -52,7 +52,7 @@ module Ronin
52
52
  @path = path
53
53
  end
54
54
 
55
- #
55
+ #
56
56
  # Accesses a repository from the cache directory.
57
57
  #
58
58
  # @param [String] name
@@ -129,10 +129,9 @@ module Ronin
129
129
  #
130
130
  def update
131
131
  each do |repo|
132
- begin
133
- repo.update
134
- rescue CommandFailed
135
- end
132
+ repo.update
133
+ rescue CommandFailed
134
+ # ignore any `git` errors when updating
136
135
  end
137
136
  end
138
137
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -33,12 +33,12 @@ module Ronin
33
33
  #
34
34
  # require 'ronin/core/module_registry'
35
35
  # require 'ronin/repos/class_dir'
36
- #
36
+ #
37
37
  # module Ronin
38
38
  # module Exploits
39
39
  # include Ronin::Core::ClassRegistry
40
40
  # include Ronin::Repos::ClassDir
41
- #
41
+ #
42
42
  # class_dir "#{__dir__}/classes"
43
43
  # repo_class_dir "exploits"
44
44
  # end
@@ -49,11 +49,11 @@ module Ronin
49
49
  # module Ronin
50
50
  # module Exploits
51
51
  # class Exploit
52
- #
52
+ #
53
53
  # def self.register(name)
54
54
  # Exploits.register(name,self)
55
55
  # end
56
- #
56
+ #
57
57
  # end
58
58
  # end
59
59
  # end
@@ -61,13 +61,13 @@ module Ronin
61
61
  # `~/.cache/ronin-repos/repo1/exploits/my_exploit.rb`:
62
62
  #
63
63
  # require 'ronin/exploits/exploit'
64
- #
64
+ #
65
65
  # module Ronin
66
66
  # module Exploits
67
67
  # class MyExploit < Exploit
68
- #
68
+ #
69
69
  # register 'my_exploit'
70
- #
70
+ #
71
71
  # end
72
72
  # end
73
73
  # end
@@ -88,6 +88,9 @@ module Ronin
88
88
  namespace.extend ClassMethods
89
89
  end
90
90
 
91
+ #
92
+ # Class-methods.
93
+ #
91
94
  module ClassMethods
92
95
  #
93
96
  # Gets or sets the repository module directory name.
@@ -97,7 +100,7 @@ module Ronin
97
100
  #
98
101
  # @return [String]
99
102
  # The repository module directory name.
100
- #
103
+ #
101
104
  # @raise [NotImplementedError]
102
105
  # The `repo_class_dir` method was not defined in the module.
103
106
  #
@@ -117,13 +120,16 @@ module Ronin
117
120
  # {#repo_class_dir} across all installed repositories.
118
121
  #
119
122
  # @return [Array<String>]
120
- #
123
+ #
121
124
  def list_files
122
125
  modules = Set.new(super)
123
- pattern = File.join(repo_class_dir,"{**/}*.rb")
126
+ pattern = File.join(repo_class_dir,"{**/}*.rb")
127
+
128
+ # the String#slice range to remove the repo_class_dir/ and .rb ext
129
+ slice_range = (repo_class_dir.length + 1)...-3
124
130
 
125
131
  Repos.list_files(pattern).each do |path|
126
- modules << path.chomp('.rb')
132
+ modules << path.slice(slice_range)
127
133
  end
128
134
 
129
135
  return modules.to_a
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -24,6 +24,9 @@ require 'ronin/core/cli/command'
24
24
  module Ronin
25
25
  module Repos
26
26
  class CLI
27
+ #
28
+ # Base command for all `ronin-repos` commands.
29
+ #
27
30
  class Command < Core::CLI::Command
28
31
 
29
32
  man_dir File.join(ROOT,'man')
@@ -39,8 +42,7 @@ module Ronin
39
42
  @cache_dir = CacheDir.new(dir)
40
43
  end
41
44
 
42
-
43
- # The ronin-repos cache directory.
45
+ # The `ronin-repos` cache directory.
44
46
  #
45
47
  # @return [CacheDir]
46
48
  attr_reader :cache_dir
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -18,6 +18,8 @@
18
18
 
19
19
  require 'ronin/repos/cli/command'
20
20
 
21
+ require 'ronin/core/cli/logging'
22
+
21
23
  module Ronin
22
24
  module Repos
23
25
  class CLI
@@ -40,6 +42,8 @@ module Ronin
40
42
  #
41
43
  class Install < Command
42
44
 
45
+ include Core::CLI::Logging
46
+
43
47
  usage '[options] URI'
44
48
 
45
49
  argument :uri, required: true,
@@ -58,7 +62,7 @@ module Ronin
58
62
  #
59
63
  def run(uri)
60
64
  log_info "Installing repository from #{uri} ..."
61
- cache_dir.download(uri)
65
+ cache_dir.install(uri)
62
66
  rescue CommandFailed => error
63
67
  print_error(error.message)
64
68
  exit(-1)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -63,7 +63,7 @@ module Ronin
63
63
  # The path to the new repo directory to create.
64
64
  #
65
65
  def run(path)
66
- @name = File.basename(path)
66
+ @name = File.basename(path)
67
67
  @github_user = Core::Git.github_user || ENV['USER']
68
68
 
69
69
  mkdir path
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -22,12 +22,27 @@ module Ronin
22
22
  module Repos
23
23
  class CLI
24
24
  module Commands
25
+ #
26
+ # The `ronin-repos purge` command.
27
+ #
28
+ # ## Usage
29
+ #
30
+ # ronin-repos purge [options]
31
+ #
32
+ # ## Options
33
+ #
34
+ # -C, --cache-dir DIR Overrides the default cache directory
35
+ # -h, --help Print help information
36
+ #
25
37
  class Purge < Command
26
38
 
27
39
  description 'Removes all git repository from the cache directory'
28
40
 
29
41
  man_page 'ronin-repos-download.1'
30
42
 
43
+ #
44
+ # Runs the `ronin-repos purge` command.
45
+ #
31
46
  def run
32
47
  cache_dir.purge
33
48
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -16,8 +16,11 @@
16
16
  # along with ronin-repos. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
+ require 'ronin/repos/version'
20
+
19
21
  require 'command_kit/commands'
20
22
  require 'command_kit/commands/auto_load'
23
+ require 'command_kit/options/version'
21
24
 
22
25
  module Ronin
23
26
  module Repos
@@ -33,8 +36,10 @@ module Ronin
33
36
  dir: "#{__dir__}/cli/commands",
34
37
  namespace: "#{self}::Commands"
35
38
  )
39
+ include CommandKit::Options::Version
36
40
 
37
41
  command_name 'ronin-repos'
42
+ version Ronin::Repos::VERSION
38
43
 
39
44
  command_aliases['ls'] = 'list'
40
45
  command_aliases['up'] = 'update'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -21,13 +21,13 @@ module Ronin
21
21
  class Exception < RuntimeError
22
22
  end
23
23
 
24
- class RepositoryNotFound < Exception
24
+ class RepositoryNotFound < Repos::Exception
25
25
  end
26
26
 
27
- class CommandNotInstalled < Exception
27
+ class CommandNotInstalled < Repos::Exception
28
28
  end
29
29
 
30
- class CommandFailed < Exception
30
+ class CommandFailed < Repos::Exception
31
31
  end
32
32
  end
33
33
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -66,7 +66,7 @@ module Ronin
66
66
  # Clones a repository.
67
67
  #
68
68
  # @param [String, URI::HTTPS] uri
69
- # The `https://` or `git@HOST:PATH` SSH URI
69
+ # The `https://` or `git@HOST:PATH` SSH URI
70
70
  #
71
71
  # @param [String] path
72
72
  # The path to where the repository will be cloned to.
@@ -109,7 +109,7 @@ module Ronin
109
109
  # path.
110
110
  #
111
111
  # @param [String, URI::HTTPS] uri
112
- # The `https://` or `git@HOST:PATH` SSH URI
112
+ # The `https://` or `git@HOST:PATH` SSH URI
113
113
  #
114
114
  # @param [String] path
115
115
  # The path to where the repository will be cloned to.
@@ -304,7 +304,7 @@ module Ronin
304
304
  #
305
305
  def glob(pattern,&block)
306
306
  path = join(pattern)
307
- matches = Dir.glob(path).sort
307
+ matches = Dir.glob(path)
308
308
 
309
309
  if block then matches.each(&block)
310
310
  else matches
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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 Repos
21
21
  # ronin-repos version
22
- VERSION = '0.1.0.beta1'
22
+ VERSION = '0.1.1'
23
23
  end
24
24
  end
data/lib/ronin/repos.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2021 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2021-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-repos 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
@@ -25,7 +25,7 @@ module Ronin
25
25
  # @api public
26
26
  #
27
27
  module Repos
28
- @@cache_dir = CacheDir.new
28
+ @cache_dir = CacheDir.new
29
29
 
30
30
  #
31
31
  # Finds the first matching file.
@@ -42,7 +42,7 @@ module Ronin
42
42
  # # => "/home/user/.cache/ronin-repos/foo-repo/wordlists/wordlist.txt"
43
43
  #
44
44
  def self.find_file(path)
45
- @@cache_dir.find_file(path)
45
+ @cache_dir.find_file(path)
46
46
  end
47
47
 
48
48
  #
@@ -62,7 +62,7 @@ module Ronin
62
62
  # # "/home/user/.cache/ronin-repos/bar-repo/wordlists/beers.txt"]
63
63
  #
64
64
  def self.glob(pattern,&block)
65
- @@cache_dir.glob(pattern,&block)
65
+ @cache_dir.glob(pattern,&block)
66
66
  end
67
67
 
68
68
  #
@@ -75,7 +75,7 @@ module Ronin
75
75
  # The matching files within all repositories.
76
76
  #
77
77
  def self.list_files(pattern='{**/}*.*')
78
- @@cache_dir.list_files(pattern)
78
+ @cache_dir.list_files(pattern)
79
79
  end
80
80
  end
81
81
  end