reaver 0.12.0 → 0.14.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: cf376a05a8213d80cda26e8719e6136a556692e5c40b9ca5f3386d85c90a2c8a
4
- data.tar.gz: fe4b5eea901be158748e1125e53b49d689a6ece8d8e5a433ec38ae353368024f
3
+ metadata.gz: 11f9df0aabd618b5bf7aab285589005337370b29d434aa31609299a859a3a3df
4
+ data.tar.gz: 1a7cd410c41212268eb2a7d4f481d514912f5a337ab3d1619423c11d2b1263ca
5
5
  SHA512:
6
- metadata.gz: af0313623876c98ac8f57edaf9ac9a6740b0a344436521dcd216d21a742b6453ee2c237e06542bd2ae669fce1591d77f857dcf0819778945b056e78c04481f6a
7
- data.tar.gz: dd6ba131634c90d2e3c72c189ecfed6e8938c0740ce198a08f9fdba311f476890d3b75d44a75c1dcc6591aa6eec0248d1faee68c9dcd6add5de676344a1f3f14
6
+ metadata.gz: a30ca1a17864e1f7bfa169d357df180125b362d84cc36e115a43e6f08a6b1a9c92b1f287fa7c22d6fa1be0d6d8d7f9464d24132bee83b3d577e8ec14a43d784c
7
+ data.tar.gz: 042e5aaa0569b07318f6a9437bf6463bea0a282946edebae1242a6035fafea1eeb3b63ef96792fe7f5c68d59ccf48cf397fdbf30341ed68682465e2c7537a713
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.14.0, release 11/2024
2
+ - Can `git clone` && `git pull` if use `things[].git: true`
3
+
1
4
  ## 0.12.0
2
5
  - Add `--strip-components=1` to tar, by default set to `1` may be changed by
3
6
  `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
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.12.0'
4
+ VERSION = '0.14.0'
5
5
  end
data/lib/reaver/walk.rb CHANGED
@@ -26,6 +26,8 @@ module Reaver
26
26
  extract_gzip
27
27
  when %r{^font/ttf}
28
28
  copy_file
29
+ when %r{^application/(x-elf|x-sh)}
30
+ copy_file_with_x
29
31
  else
30
32
  puts "Filetype #{@extension} not yet supported, skipping..."
31
33
  end
@@ -52,6 +54,13 @@ module Reaver
52
54
  puts "Copying file #{@filename} at #{@final_dest}..."
53
55
  FileUtils.mkdir_p @final_dest
54
56
  FileUtils.cp @filename, "#{@final_dest}/#{@filename}"
57
+ rescue Errno::ETXTBSY => e
58
+ puts "You should stop program before update > #{e}"
59
+ end
60
+
61
+ def copy_file_with_x
62
+ copy_file
63
+ File.chmod 0700, "#{@final_dest}/#{@filename}"
55
64
  end
56
65
 
57
66
  def extract_zip
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'
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.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEhTCCAu2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBEMREwDwYDVQQDDAhzem9y
13
+ MIIEPDCCAqSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBEMREwDwYDVQQDDAhzem9y
14
14
  ZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJk/IsZAEZ
15
- FgNjb20wHhcNMjMxMDIzMTcyMTA4WhcNMjQxMDIyMTcyMTA4WjBEMREwDwYDVQQD
15
+ FgNjb20wHhcNMjQxMDI1MTU0NTI4WhcNMjUxMDI1MTU0NTI4WjBEMREwDwYDVQQD
16
16
  DAhzem9yZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJ
17
17
  k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqe1yx
18
18
  EG2oM25jeHp08A8zkaDNmbI3MujjrRM/WPEYZX2dVwOxkIS20hQVuxcAsBBA4W/W
@@ -23,20 +23,18 @@ cert_chain:
23
23
  xI2/BnS8zOsS6Te08iLxqZfI/lsG8wcPduekSetRI4VIOZ5QoRK54PiQjrOBhbnD
24
24
  OQBB/XF1C80imZtRtdUqh6bK9WeWI4RYZ2/KwXL1AScEbXkBkkOECWoVrD18WgRm
25
25
  siuX6RkNIelhtb0En7f3bizgPqlO0qPQV+wPi9TSBxdVG12C0OmjCQYMQD0CAwEA
26
- AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTlKnQ3qMUF
27
- zydvZaKwdP+dnj2uajAiBgNVHREEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNv
28
- bTAiBgNVHRIEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNvbTANBgkqhkiG9w0B
29
- AQsFAAOCAYEAFjnBWWfaMeA8hP0Q76WmBCFckGN5I42X5RQkVYRRXIaeXIS1td/t
30
- O1v1iQLo6ABfASMi6We7T16+ita68xwNOmSkMNHHXBr/fdGbHExxFSX7BXNRbwla
31
- SS6Vy0bXKMDJbXcvkrmIolpYhEFm1218FCRCT6ogM1oWAJAfhfF9pMeRxrxjQYFn
32
- ko8XgjIHxb83miOILgdq/lgJ4gfD7PsGfJtLCLiCKCcxIb4TtmKAzRwCDVpb6wqM
33
- 5xJZffAmHI7v8lVer53sPzm3INPu5xFZyfZ/SXYXPKKwln0efH63K5vuXYwEN7NI
34
- SBSRTN03Hb65t86m6/r084SrNnLntQjCSqApzFBt1QwJ5cmiVilODN4V7y2hZpyK
35
- hSk3b2VOotDPiWIm1p/IPXQDfm5x67Z5fJQPAlBTsse4jKyVyW1lZLmERSBuRZ2O
36
- urXgRIzALxd/xazPCnoLSXPzfJSI6Y77S1EBvhPd9RaSO8IyH9RhPDP9mnTvW2Kl
37
- NAUnoL+txK5a
26
+ AaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFOUqdDeoxQXP
27
+ J29lorB0/52ePa5qMA0GCSqGSIb3DQEBCwUAA4IBgQAg+ig1ZbxY3KlXD5pfn7HV
28
+ tl7TIkkTznhCW33HZrswRQnQ5nC/w/MClasCCDjEL6tzE4dTs/Hn/DBBFPzb0WWI
29
+ sUYnBaf0k4uF5mEMUXjjAsNa6P+w35VJBHSPLgsBrVX/5H9hnptw5qquxDFuSvQ3
30
+ MeUCnhe8+YFSQCigJRA1h3b2XMQEw7KjdJAfYx2qd7zQgfqtKp46E3Jndk7PHpfQ
31
+ 826uy2+rqHZJtRPfh/SPUIyMjxDpW7vZd1J8uTFgVoNn8OdFv5FKsjCEP9VfxgN7
32
+ hO51TYmCd7cvnGrwfx6j/AqA6N2nHZNojwQ98nfXWp5tdjET+gipjZwYGmM3+7o/
33
+ /WIxUcce8RaxYQ9kfz9zrNKeWqlviQ6dc3tnn3Ppu/27YjyC/tqodic1pPE6US9y
34
+ 1Eu31LqT9K75BZgLoHDybDlvVJ1B2hZI31jZOFjqpCgVxwoHmuigy2iCUcLsCTJJ
35
+ 6ct0vZN7gCQ/YSLa3jJf1N/CH4rQokbof1fehel4SPA=
38
36
  -----END CERTIFICATE-----
39
- date: 2024-10-08 00:00:00.000000000 Z
37
+ date: 2024-11-29 00:00:00.000000000 Z
40
38
  dependencies:
41
39
  - !ruby/object:Gem::Dependency
42
40
  name: marcel
@@ -98,6 +96,7 @@ files:
98
96
  - lib/reaver/banner.rb
99
97
  - lib/reaver/collection.rb
100
98
  - lib/reaver/download.rb
99
+ - lib/reaver/git.rb
101
100
  - lib/reaver/metadata.rb
102
101
  - lib/reaver/version.rb
103
102
  - lib/reaver/walk.rb
@@ -126,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
125
  - !ruby/object:Gem::Version
127
126
  version: '0'
128
127
  requirements: []
129
- rubygems_version: 3.3.25
128
+ rubygems_version: 3.5.16
130
129
  signing_key:
131
130
  specification_version: 4
132
131
  summary: A tool to downloads and track updates of things on the Net.
metadata.gz.sig CHANGED
Binary file