reaver 0.13.0 → 0.16.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71aeb61cce0d233f4805e0c63a95fd171638a4d0142379bc63d18f2e459be020
4
- data.tar.gz: 4d5b980f10d77ff049425246af3860e1c4a3742c1d1248036afb622e472b90b6
3
+ metadata.gz: 6e75538ee4c18114f190e991429b05ea524c2de56aca95f34ed4ac249db2f957
4
+ data.tar.gz: 366534e5bed91646b6081086687574e81ee47e1ecf398dc685095bd441b18831
5
5
  SHA512:
6
- metadata.gz: db92437ff4c2a4ccb20455fed86107dc5a7d5739552ff77a8c2053cfe6b4d047ed025db3553b1c537242948b157686b86c5e02726e578c7f728798e7409f3d27
7
- data.tar.gz: fd890ce9dc9e2d74d14b4f838e892082761d3862e284ccab3781792289a8263460b9a65378a5d2894ab1929d7234730d950b7090fa0bf66810d7858911dea06d
6
+ metadata.gz: b0ae6803f840ecb0757f17acd46d4503a1e088dac2421c34c90a8a142f53477fec9c93f6709362a89c3aac76c4d8fefa2a346bed1e46c1a1976f2b24501c89a0
7
+ data.tar.gz: b7da2a626a3ea6ad7b157023a7650321da220e53e2334ad8bc1af54779909f438d6f5dd71084ae2433265a061c0e2fb7c472bf569419ad06ec594bd7760f8a90
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.16.0, release 01/2025
2
+ + Reaver stop rewriting our yaml collections and erase indentation...
3
+ + 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`
4
+ + Can add `keep_name = true` per file, not only globally.
5
+
6
+ ## 0.14.0, release 11/2024
7
+ - Can `git clone` && `git pull` if use `things[].git: true`
8
+
1
9
  ## 0.12.0
2
10
  - Add `--strip-components=1` to tar, by default set to `1` may be changed by
3
11
  `things[].strip_components: <number>` variable
data/README.md CHANGED
@@ -9,7 +9,7 @@ move things to the right spot.
9
9
 
10
10
  ## Dependencies
11
11
 
12
- Reaver need only `unzip`, `xz` and `tar`.
12
+ Reaver need only `unzip`, `xz`, `tar` and `git`, depending what you'll use.
13
13
 
14
14
  ## Collections
15
15
 
@@ -48,13 +48,14 @@ To see more examples, go
48
48
  A collection can include:
49
49
  - `all_into_dir: <dirname>` if all files go in a directory. Directory is created
50
50
  if not exist.
51
- - `keep_name: <boolean>`, if `true`, use the name of the thing for the dest, e.g, for a name `ombre.tar.gz`, the final dest will be `all_into_dir/ombre` or `dest_dir/ombre`.
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 dest will be `all_into_dir/ombre` or `dest_dir/ombre`.
52
52
  - `force_download: <boolean>`, if you make change and want to download now, change to `true`.
53
53
  - `things[].dest_dir: <dirname>`, if each files go in differents directory, use this.
54
54
  - `things[].name` the new name after download, may include the file extension.
55
55
  - `things[].strip_components: <number>`, used on `tar`, default to 1, skip the first
56
56
  directory from an archive, if no subdirectory exist, you should set to 0.
57
57
  - `things[].url: <string>`
58
+ - `things[].git: <boolean>`, If the thing need to be managed with git.
58
59
  - `time: 86000` (in second) is for search every day ( 60 * 60 * 24 ).
59
60
 
60
61
  If `all_into_dir` is defined, `things[].dest_dir` is not used.
@@ -34,7 +34,11 @@ module Reaver
34
34
  return unless @tasks || @tasks['things'].length.zero?
35
35
 
36
36
  @tasks['things'].each do |task|
37
- do_thing(task)
37
+ if task['git']
38
+ Reaver::Git.new(task['url'], task['dest_dir'])
39
+ else
40
+ do_thing(task)
41
+ end
38
42
  metadata.info['changed'] = @changed
39
43
  end
40
44
  end
@@ -67,7 +71,7 @@ module Reaver
67
71
 
68
72
  def need_to_do_something_with(file)
69
73
  dest = @tasks['all_to_dest_dir'] || file['dest_dir']
70
- keep_name = @tasks['keep_name'] || false
74
+ keep_name = @tasks['keep_name'] || file['keep_name'] || false
71
75
  strip_components = file['strip_components'] || '1'
72
76
  return unless dest
73
77
 
@@ -14,7 +14,7 @@ module Reaver
14
14
  raise Error, "url was invalid" if !url.respond_to?(:open)
15
15
 
16
16
  options = {}
17
- options['User-Agent'] = 'MyApp/1.2.3'
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
19
  downloaded_file = ''
20
20
  Whirly.start do
data/lib/reaver/git.rb ADDED
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+
5
+ module Reaver
6
+ # Treat git
7
+ class Git
8
+ def initialize(url, dest)
9
+ @dest = "#{ENV['HOME']}/#{dest}"
10
+ @url = url
11
+ x
12
+ end
13
+
14
+ protected
15
+
16
+ def x
17
+ if !Dir.exist?(@dest)
18
+ git_clone
19
+ elsif Dir.exist?(@dest) && !Dir.exist?("#{@dest}/.git")
20
+ FileUtils.rm_rf @dest
21
+ git_clone
22
+ elsif Dir.exist?(@dest) && Dir.exist?("#{@dest}/.git")
23
+ git_sync
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def git_clone
30
+ puts "Git cloning #{@url} to #{@dest}..."
31
+ `git clone #{@url} #{@dest}`
32
+ end
33
+
34
+ def git_sync
35
+ puts "Git fetching update(s) on #{@dest}..."
36
+ `cd #{@dest} && git pull`
37
+ end
38
+ end
39
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reaver
4
- VERSION = '0.13.0'
4
+ VERSION = '0.16.0'
5
5
  end
data/lib/reaver.rb CHANGED
@@ -6,6 +6,7 @@ require_relative 'reaver/download'
6
6
  require_relative 'reaver/metadata'
7
7
  require_relative 'reaver/collection'
8
8
  require_relative 'reaver/walk'
9
+ require_relative 'reaver/git'
9
10
 
10
11
  require 'whirly'
11
12
  require 'fileutils'
@@ -56,7 +57,7 @@ module Reaver
56
57
  FileUtils.chdir(workdir)
57
58
  #puts " > chdir #{workdir}"
58
59
  collection.launch(metadata)
59
- collection.save_yaml if force_download
60
+ #collection.save_yaml if force_download
60
61
  else
61
62
  puts " > Next download > #{next_download}"
62
63
  end
data/reaver.gemspec CHANGED
@@ -41,8 +41,8 @@ Gem::Specification.new do |s|
41
41
  # s.cert_chain = %w[certs/szorfein.pem]
42
42
  # s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
43
43
 
44
- s.required_ruby_version = '>=2.6'
45
- s.add_dependency 'marcel'
44
+ s.required_ruby_version = '>=3.0'
45
+ s.add_dependency 'marcel', '~> 1.0'
46
46
  s.add_dependency 'paint', '~> 2.3'
47
47
  s.add_dependency 'whirly', '~> 0.3'
48
48
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reaver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -34,22 +34,22 @@ cert_chain:
34
34
  1Eu31LqT9K75BZgLoHDybDlvVJ1B2hZI31jZOFjqpCgVxwoHmuigy2iCUcLsCTJJ
35
35
  6ct0vZN7gCQ/YSLa3jJf1N/CH4rQokbof1fehel4SPA=
36
36
  -----END CERTIFICATE-----
37
- date: 2024-10-25 00:00:00.000000000 Z
37
+ date: 2025-01-28 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: marcel
41
41
  requirement: !ruby/object:Gem::Requirement
42
42
  requirements:
43
- - - ">="
43
+ - - "~>"
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: '1.0'
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - ">="
50
+ - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '0'
52
+ version: '1.0'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: paint
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -96,6 +96,7 @@ files:
96
96
  - lib/reaver/banner.rb
97
97
  - lib/reaver/collection.rb
98
98
  - lib/reaver/download.rb
99
+ - lib/reaver/git.rb
99
100
  - lib/reaver/metadata.rb
100
101
  - lib/reaver/version.rb
101
102
  - lib/reaver/walk.rb
@@ -117,14 +118,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
118
  requirements:
118
119
  - - ">="
119
120
  - !ruby/object:Gem::Version
120
- version: '2.6'
121
+ version: '3.0'
121
122
  required_rubygems_version: !ruby/object:Gem::Requirement
122
123
  requirements:
123
124
  - - ">="
124
125
  - !ruby/object:Gem::Version
125
126
  version: '0'
126
127
  requirements: []
127
- rubygems_version: 3.3.25
128
+ rubygems_version: 3.5.16
128
129
  signing_key:
129
130
  specification_version: 4
130
131
  summary: A tool to downloads and track updates of things on the Net.
metadata.gz.sig CHANGED
Binary file