reaver 0.16.1 → 0.17.0
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +27 -15
- data/README.md +17 -13
- data/lib/reaver/banner.rb +8 -6
- data/lib/reaver/collection.rb +1 -1
- data/lib/reaver/download.rb +30 -18
- data/lib/reaver/version.rb +1 -1
- data/lib/reaver/walk.rb +6 -11
- data/lib/reaver.rb +45 -33
- data/reaver.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +16 -19
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 149dbd0eae5bd1597a5e66059cc765c25f9f63d05d9bfdf2d7ec6484564b7bbb
|
|
4
|
+
data.tar.gz: 30e91e2d44090b1f0be9383eba41b25f854c453622de4173a910da6c12fbecf0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 34db056ae50024e6358bf14edab543a80466485ffcc5896bc17bd462ba5b33658d50adc366e328c4f43fdb99a463423753e2e49042ca965e77dd38666eec71b1
|
|
7
|
+
data.tar.gz: 0c5147410254e9019022093668db7347c3d8c41c02c94d93ddb825ccedd6a6390674aa275c1881986ee0f8f75378af056f0b8d44348aa45fbfad3dbcd2388edf
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -1,48 +1,60 @@
|
|
|
1
|
+
## 0.17.0 - Oct. 2025
|
|
2
|
+
|
|
3
|
+
- Random user-agent on each download
|
|
4
|
+
- Code improvement with Rubocop
|
|
5
|
+
|
|
1
6
|
### Fixes
|
|
2
|
-
|
|
7
|
+
|
|
8
|
+
- Skip in not things or things[] is nil
|
|
3
9
|
|
|
4
10
|
## 0.16.0, release 01/2025
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
|
|
12
|
+
- Reaver stop rewriting our yaml collections and erase indentation...
|
|
13
|
+
- Change the user-agent used for a more generic `Mozilla/5.0 (Windows NT 10.0; WOW64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6556.192 Safari/537.36`
|
|
14
|
+
- Can add `keep_name = true` per file, not only globally.
|
|
8
15
|
|
|
9
16
|
## 0.14.0, release 11/2024
|
|
17
|
+
|
|
10
18
|
- Can `git clone` && `git pull` if use `things[].git: true`
|
|
11
19
|
|
|
12
20
|
## 0.12.0
|
|
21
|
+
|
|
13
22
|
- Add `--strip-components=1` to tar, by default set to `1` may be changed by
|
|
14
23
|
`things[].strip_components: <number>` variable
|
|
15
24
|
|
|
16
25
|
## 0.11.0, release 10/2024
|
|
26
|
+
|
|
17
27
|
- can extract tar.xz archive.
|
|
18
28
|
|
|
19
29
|
## 0.10.1
|
|
30
|
+
|
|
20
31
|
- For `all_to_dir_path` or `things[].dest_dir`, all paths are relative to `$HOME` (or
|
|
21
32
|
/home/<name>), so don't include shell variable `~` or `$HOME`.
|
|
22
33
|
- unzip not interactive with `-o`.
|
|
23
34
|
|
|
24
35
|
## 0.10.0, release 10/2024
|
|
36
|
+
|
|
25
37
|
- New variable for collections, all_into_dir, things.dest_dir, keep_name and
|
|
26
38
|
force_download.
|
|
27
|
-
|
|
39
|
+
- Use [Marcel](https://github.com/rails/marcel) to detect file mime.
|
|
28
40
|
- Can decompress archive `zip` or `tar.gz (gzip)` using unzip and tar from `unix`.
|
|
29
41
|
- Cam move files to specific directory.
|
|
30
42
|
|
|
31
43
|
## 0.7.0, release 12/24/22
|
|
32
44
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
- Each collections download things in separate directory.
|
|
46
|
+
- Add a `changed` boolean if a file change.
|
|
47
|
+
- Stop modifying collection content, add them in a file called `metadata.yml`.
|
|
48
|
+
- Improve runtime.
|
|
37
49
|
|
|
38
50
|
## 0.4.0, release 12/22/22
|
|
39
51
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
- Renaming project.
|
|
53
|
+
- Add a banner.
|
|
54
|
+
- Separate main.
|
|
55
|
+
- Add collection yml.
|
|
56
|
+
- Download stack.
|
|
45
57
|
|
|
46
58
|
## 0.0.1, release 12/21/22
|
|
47
|
-
* Initial push, code freeying !
|
|
48
59
|
|
|
60
|
+
- Initial push, code released!
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Reaver
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/rb/reaver)
|
|
@@ -24,7 +24,7 @@ For example, your need to use Vim, vim require a lots of external plugins to be
|
|
|
24
24
|
|
|
25
25
|
$ $EDITOR ~/.config/reaver/vim.yml
|
|
26
26
|
|
|
27
|
-
In the file, we add all archives required by
|
|
27
|
+
In the file, we add all archives required by your projects.
|
|
28
28
|
|
|
29
29
|
```yml
|
|
30
30
|
---
|
|
@@ -42,28 +42,32 @@ all_into_dir: .config/pack/myvimpluggins/start
|
|
|
42
42
|
keep_name: true
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
To see more examples,
|
|
46
|
-
|
|
45
|
+
To see more examples, look my [dotfiles repository](https://github.com/szorfein/dotfiles), each directory contain a list of tasks for Reaver.
|
|
46
|
+
|
|
47
|
+
## Launch
|
|
48
|
+
|
|
49
|
+
After declaring your need, start Reaver simply with:
|
|
50
|
+
|
|
51
|
+
$ reaver
|
|
52
|
+
|
|
53
|
+
Reaver download all files in `~/.cache/reaver` by default.
|
|
54
|
+
|
|
55
|
+
### Few rules
|
|
47
56
|
|
|
48
57
|
A collection can include:
|
|
58
|
+
|
|
49
59
|
- `all_into_dir: <dirname>` if all files go in a directory. Directory is created
|
|
50
60
|
if not exist.
|
|
51
|
-
- `keep_name: <boolean>`, if `true`, create a directory with the name of the thing, e.g, for a name `ombre.tar.gz`, the final
|
|
61
|
+
- `keep_name: <boolean>`, if `true`, create a directory with the name of the thing, e.g, for a name `ombre.tar.gz`, the final destination will be `all_into_dir/ombre` or `dest_dir/ombre`.
|
|
52
62
|
- `force_download: <boolean>`, if you make change and want to download now, change to `true`.
|
|
53
|
-
- `things[].dest_dir: <dirname>`, if each files go in
|
|
63
|
+
- `things[].dest_dir: <dirname>`, if each files go in different directory, use this.
|
|
54
64
|
- `things[].name` the new name after download, may include the file extension.
|
|
55
65
|
- `things[].strip_components: <number>`, used on `tar`, default to 1, skip the first
|
|
56
66
|
directory from an archive, if no subdirectory exist, you should set to 0.
|
|
57
67
|
- `things[].url: <string>`
|
|
58
68
|
- `things[].git: <boolean>`, If the thing need to be managed with git.
|
|
59
|
-
- `time: 86000` (in second) is for search every day ( 60
|
|
69
|
+
- `time: 86000` (in second) is for search every day ( 60 _ 60 _ 24 ).
|
|
60
70
|
|
|
61
71
|
If `all_into_dir` is defined, `things[].dest_dir` is not used.
|
|
62
72
|
All paths given are relative to `$HOME` so don't include `~` or any shell
|
|
63
73
|
variables.
|
|
64
|
-
|
|
65
|
-
And start reaver simply with:
|
|
66
|
-
|
|
67
|
-
$ reaver
|
|
68
|
-
|
|
69
|
-
Reaver download all files in `~/.cache/reaver` by default.
|
data/lib/reaver/banner.rb
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Reaver.banner
|
|
3
4
|
module Reaver
|
|
4
5
|
def self.banner
|
|
5
6
|
# Generated on https://www.coolgenerator.com/ascii-text-generator
|
|
6
7
|
# font > ASCII New Roman
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
<<~BANNER
|
|
9
|
+
____, ____, ____,__ _,____,____,
|
|
10
|
+
(-|__)(-|_, (-/_|(-\\ /(-|_,(-|__)
|
|
11
|
+
_| \\,_|__,_/ |, _\\/ _|__,_| \\,
|
|
12
|
+
( ( ( ( ( (
|
|
13
|
+
|
|
14
|
+
BANNER
|
|
13
15
|
end
|
|
14
16
|
end
|
data/lib/reaver/collection.rb
CHANGED
data/lib/reaver/download.rb
CHANGED
|
@@ -5,36 +5,48 @@ require 'net/http'
|
|
|
5
5
|
require 'tempfile'
|
|
6
6
|
require 'fileutils'
|
|
7
7
|
|
|
8
|
+
# Download link
|
|
8
9
|
module Reaver
|
|
9
|
-
|
|
10
|
+
module_function
|
|
10
11
|
|
|
11
12
|
def download(url, name)
|
|
12
13
|
dest = name
|
|
13
14
|
url = URI(url)
|
|
14
|
-
raise Error, 'url was invalid'
|
|
15
|
+
raise Error, 'url was invalid' unless url.respond_to?(:open)
|
|
15
16
|
|
|
16
17
|
options = {}
|
|
17
|
-
options['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6556.192 Safari/537.36'
|
|
18
18
|
|
|
19
|
-
downloaded_file = ''
|
|
20
19
|
Whirly.start do
|
|
21
20
|
Whirly.status = "downloading #{dest}"
|
|
21
|
+
options['User-Agent'] = agent_list
|
|
22
22
|
downloaded_file = URI.open(url, options)
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
# is less than 10 KB, so we patch this behaviour by converting it into
|
|
26
|
-
# a Tempfile.
|
|
27
|
-
if downloaded_file.is_a?(StringIO)
|
|
28
|
-
tempfile = Tempfile.new('open-uri', binmode: true)
|
|
29
|
-
IO.copy_stream(downloaded_file, tempfile.path)
|
|
30
|
-
downloaded_file = tempfile
|
|
31
|
-
FileUtils.mv downloaded_file.path, dest
|
|
32
|
-
else
|
|
33
|
-
IO.copy_stream(downloaded_file, dest)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
downloaded_file
|
|
24
|
+
get_the_link(downloaded_file, dest)
|
|
37
25
|
end
|
|
38
26
|
end
|
|
39
|
-
end
|
|
40
27
|
|
|
28
|
+
# List from https://www.useragents.me/
|
|
29
|
+
# return a random user-agent with sample
|
|
30
|
+
def agent_list
|
|
31
|
+
ag = ['Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.10 Safari/605.1.1',
|
|
32
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.3',
|
|
33
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.3',
|
|
34
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.3',
|
|
35
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Trailer/93.3.8652.5']
|
|
36
|
+
ag.sample
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def get_the_link(file, dest)
|
|
40
|
+
# open-uri will return a StringIO instead of a Tempfile if the filesize
|
|
41
|
+
# is less than 10 KB, so we patch this behaviour by converting it into
|
|
42
|
+
# a Tempfile.
|
|
43
|
+
if file.is_a?(StringIO)
|
|
44
|
+
tempfile = Tempfile.new('open-uri', binmode: true)
|
|
45
|
+
IO.copy_stream(file, tempfile.path)
|
|
46
|
+
FileUtils.mv file.path, dest
|
|
47
|
+
else
|
|
48
|
+
IO.copy_stream(file, dest)
|
|
49
|
+
end
|
|
50
|
+
file
|
|
51
|
+
end
|
|
52
|
+
end
|
data/lib/reaver/version.rb
CHANGED
data/lib/reaver/walk.rb
CHANGED
|
@@ -18,16 +18,11 @@ module Reaver
|
|
|
18
18
|
|
|
19
19
|
def x
|
|
20
20
|
case @extension
|
|
21
|
-
when %r{^image/(jpeg|png)}
|
|
22
|
-
|
|
23
|
-
when %r{^application/
|
|
24
|
-
|
|
25
|
-
when %r{^application/(
|
|
26
|
-
extract_gzip
|
|
27
|
-
when %r{^font/ttf}
|
|
28
|
-
copy_file
|
|
29
|
-
when %r{^application/(x-elf|x-sh)}
|
|
30
|
-
copy_file_with_x
|
|
21
|
+
when %r{^image/(jpeg|png)} then copy_file
|
|
22
|
+
when %r{^application/zip} then extract_zip
|
|
23
|
+
when %r{^application/(gzip|x-xz)} then extract_gzip
|
|
24
|
+
when %r{^font/ttf} then copy_file
|
|
25
|
+
when %r{^application/(x-elf|x-sh)} then copy_file_with_x
|
|
31
26
|
else
|
|
32
27
|
puts "Filetype #{@extension} not yet supported, skipping..."
|
|
33
28
|
end
|
|
@@ -60,7 +55,7 @@ module Reaver
|
|
|
60
55
|
|
|
61
56
|
def copy_file_with_x
|
|
62
57
|
copy_file
|
|
63
|
-
File.chmod
|
|
58
|
+
File.chmod 0o700, "#{@final_dest}/#{@filename}"
|
|
64
59
|
end
|
|
65
60
|
|
|
66
61
|
def extract_zip
|
data/lib/reaver.rb
CHANGED
|
@@ -11,58 +11,70 @@ require_relative 'reaver/git'
|
|
|
11
11
|
require 'whirly'
|
|
12
12
|
require 'fileutils'
|
|
13
13
|
|
|
14
|
+
# Main class
|
|
14
15
|
module Reaver
|
|
16
|
+
module_function
|
|
17
|
+
|
|
15
18
|
# Where downloads things
|
|
16
19
|
CACHE_DIR = "#{ENV['HOME']}/.cache/reaver"
|
|
17
20
|
|
|
18
21
|
# Search collection paths
|
|
19
|
-
|
|
20
|
-
WORKDIR = "#{ENV['XDG_CONFIG_HOME']}/reaver"
|
|
21
|
-
else
|
|
22
|
-
WORKDIR = "#{ENV['HOME']}/.config/reaver"
|
|
23
|
-
end
|
|
22
|
+
WORKDIR = ENV['XDG_CONFIG_HOME'] ? "#{ENV['XDG_CONFIG_HOME']}/reaver" : "#{ENV['HOME']}/.config/reaver"
|
|
24
23
|
|
|
25
24
|
# Configure Whirly
|
|
26
25
|
Whirly.configure spinner: 'bouncingBar',
|
|
27
26
|
color: true,
|
|
28
27
|
ambiguous_characters_width: 1
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
FileUtils.mkdir_p(WORKDIR)
|
|
32
|
-
|
|
33
|
-
#puts ">> Search collections in #{WORKDIR}"
|
|
29
|
+
FileUtils.mkdir_p(WORKDIR)
|
|
34
30
|
|
|
31
|
+
def main
|
|
35
32
|
Dir.glob("#{WORKDIR}/*.yml").each do |f|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
workdir = "#{CACHE_DIR}/#{name}"
|
|
39
|
-
|
|
40
|
-
FileUtils.mkdir_p(workdir)
|
|
41
|
-
|
|
42
|
-
collection = Collection.new(f)
|
|
43
|
-
collection.load_yaml
|
|
44
|
-
|
|
45
|
-
#puts collection.tasks
|
|
33
|
+
workdir = collection_name(f)
|
|
34
|
+
collection = load_collection(f)
|
|
46
35
|
|
|
47
36
|
next unless collection.tasks
|
|
48
37
|
|
|
49
|
-
metadata =
|
|
50
|
-
metadata.
|
|
51
|
-
|
|
52
|
-
force_download = collection.tasks['force_download'] || false
|
|
53
|
-
#puts "should we force #{force_download}"
|
|
54
|
-
|
|
55
|
-
if next_download < Time.new || force_download
|
|
56
|
-
#puts ' >> Download time for ' + name
|
|
57
|
-
FileUtils.chdir(workdir)
|
|
58
|
-
#puts " > chdir #{workdir}"
|
|
59
|
-
collection.launch(metadata)
|
|
60
|
-
#collection.save_yaml if force_download
|
|
61
|
-
else
|
|
62
|
-
puts " > Next download > #{next_download}"
|
|
38
|
+
metadata = load_metadata(workdir, collection)
|
|
39
|
+
if analyze_collection(metadata.info['next'], collection.tasks['force_download'])
|
|
40
|
+
time_to_download(workdir, collection, metadata)
|
|
63
41
|
end
|
|
64
42
|
|
|
65
43
|
metadata.save_yaml
|
|
66
44
|
end
|
|
67
45
|
end
|
|
46
|
+
|
|
47
|
+
def load_collection(pathname)
|
|
48
|
+
collection = Collection.new(pathname)
|
|
49
|
+
collection.load_yaml
|
|
50
|
+
collection
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def load_metadata(workdir, collection)
|
|
54
|
+
FileUtils.mkdir_p(workdir)
|
|
55
|
+
md = MetaData.new(workdir, collection)
|
|
56
|
+
md.load_yaml
|
|
57
|
+
md
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def collection_name(filename)
|
|
61
|
+
name = filename.split('/').last
|
|
62
|
+
name = name.split('.').first
|
|
63
|
+
"#{CACHE_DIR}/#{name}"
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def analyze_collection(info_next, forced = nil)
|
|
67
|
+
next_download = info_next
|
|
68
|
+
force_download = forced || false
|
|
69
|
+
return true if next_download < Time.new || force_download
|
|
70
|
+
|
|
71
|
+
puts " > Next download > #{next_download}"
|
|
72
|
+
false
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def time_to_download(workdir, collection, metadata)
|
|
76
|
+
FileUtils.chdir(workdir)
|
|
77
|
+
collection.launch(metadata)
|
|
78
|
+
# collection.save_yaml if force_download
|
|
79
|
+
end
|
|
68
80
|
end
|
data/reaver.gemspec
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: reaver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- szorfein
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain:
|
|
11
10
|
- |
|
|
12
11
|
-----BEGIN CERTIFICATE-----
|
|
13
|
-
|
|
12
|
+
MIIEPDCCAqSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBEMREwDwYDVQQDDAhzem9y
|
|
14
13
|
ZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJk/IsZAEZ
|
|
15
|
-
|
|
14
|
+
FgNjb20wHhcNMjUxMDI2MTQyNTU2WhcNMjYxMDI2MTQyNTU2WjBEMREwDwYDVQQD
|
|
16
15
|
DAhzem9yZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJ
|
|
17
16
|
k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqe1yx
|
|
18
17
|
EG2oM25jeHp08A8zkaDNmbI3MujjrRM/WPEYZX2dVwOxkIS20hQVuxcAsBBA4W/W
|
|
@@ -24,17 +23,17 @@ cert_chain:
|
|
|
24
23
|
OQBB/XF1C80imZtRtdUqh6bK9WeWI4RYZ2/KwXL1AScEbXkBkkOECWoVrD18WgRm
|
|
25
24
|
siuX6RkNIelhtb0En7f3bizgPqlO0qPQV+wPi9TSBxdVG12C0OmjCQYMQD0CAwEA
|
|
26
25
|
AaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFOUqdDeoxQXP
|
|
27
|
-
J29lorB0/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
J29lorB0/52ePa5qMA0GCSqGSIb3DQEBCwUAA4IBgQAW22kVqz92sKW7thsKrW2i
|
|
27
|
+
BwVahsopgVLIUqp7sT+nL6Jw1QWCxolDwSToWFo0XuwbNdqCuGRBM+IzhWmCcA0e
|
|
28
|
+
WoHAPGQAhKz5jCWJ9GwgWbttYNrZ/PkyzKlT+15itMVeEEKxcqvfVFkdTXvTtliP
|
|
29
|
+
h75zR66tpFPjOejy+YD0uSPWbR/Nskf4BaMFso7mEr+5nOfzj0+Emy3MikHMm7uo
|
|
30
|
+
qZEazJO4XlmQWI2O7skt/SkE6xiZDQeCADZ4NXxBNzKkxKpozBXSeBKNUi21y9zR
|
|
31
|
+
3PGUOg6fCZt5H3kSffrvtycOnAu/FRNrQUxKRHLJKez8d7zJH64sBdldm5fZJu1O
|
|
32
|
+
pzUhdmhxa/brsIYFPPsjw0PminqSEmFahOoGyph8lw1IYu6UskIlB+J1BLZxsPkJ
|
|
33
|
+
6+fmQQAYvIhUQH+pOPELkGGo+bQMpCLb4i97kyzbOjJqAFKsgqgCOtvUC4yUZRNb
|
|
34
|
+
YulAM0cmmcfbzWUxsyAoCp9mY227qQZpGv6dDgv4IbA=
|
|
36
35
|
-----END CERTIFICATE-----
|
|
37
|
-
date:
|
|
36
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
38
37
|
dependencies:
|
|
39
38
|
- !ruby/object:Gem::Dependency
|
|
40
39
|
name: marcel
|
|
@@ -42,14 +41,14 @@ dependencies:
|
|
|
42
41
|
requirements:
|
|
43
42
|
- - "~>"
|
|
44
43
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: '1.
|
|
44
|
+
version: '1.1'
|
|
46
45
|
type: :runtime
|
|
47
46
|
prerelease: false
|
|
48
47
|
version_requirements: !ruby/object:Gem::Requirement
|
|
49
48
|
requirements:
|
|
50
49
|
- - "~>"
|
|
51
50
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '1.
|
|
51
|
+
version: '1.1'
|
|
53
52
|
- !ruby/object:Gem::Dependency
|
|
54
53
|
name: paint
|
|
55
54
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,7 +109,6 @@ metadata:
|
|
|
110
109
|
source_code_uri: https://github.com/szorfein/reaver
|
|
111
110
|
wiki_uri: https://github.com/szorfein/reaver/wiki
|
|
112
111
|
funding_uri: https://patreon.com/szorfein
|
|
113
|
-
post_install_message:
|
|
114
112
|
rdoc_options: []
|
|
115
113
|
require_paths:
|
|
116
114
|
- lib
|
|
@@ -125,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
125
123
|
- !ruby/object:Gem::Version
|
|
126
124
|
version: '0'
|
|
127
125
|
requirements: []
|
|
128
|
-
rubygems_version: 3.
|
|
129
|
-
signing_key:
|
|
126
|
+
rubygems_version: 3.6.9
|
|
130
127
|
specification_version: 4
|
|
131
128
|
summary: A tool to downloads and track updates of things on the Net.
|
|
132
129
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|