sysdeps 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/README +6 -0
  3. data/bin/sysdeps +2 -2
  4. data/changelog +4 -0
  5. data/lib/sysdeps.rb +16 -7
  6. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5386157b88a33cb1a4359d6485f5b68128c9b806889f9b166a695816e956f5f
4
- data.tar.gz: 9298fea6f53fcef3e4fb6c87bd1ca7fc450769591553cbbcb8521332eed4e629
3
+ metadata.gz: 4215119bde35d18ba1ba03adef23017b02c4fcc912c057a9218d6ba96b22ea6f
4
+ data.tar.gz: 9a5d37cecf51848a314d6cf2576d86399182f6558e5331b04890e939068e49a1
5
5
  SHA512:
6
- metadata.gz: 63dcd649f63fac64679fc086e06490f0df979cdae0424f1c349debe2bc81ce2b40c507ab441eb66cd4d1f560d7cce858e8df67512eb4aa0a8d61d75cdda55b5b
7
- data.tar.gz: b10993d0b7dd121134c5c9af5324618a64fd84a7a7c7459d91beb08b7bbd808c3f71c45f0f7b11e2fb2ace49d85846708dc682208a25f6ca7eb3ed32d5ae6eaf
6
+ metadata.gz: b53d2241bb2edd4f7cdc91020764ddfcbdcfd4a62af11d97c8a42177c3ed018c97e48b1d355932f37a17f888d5d0fbda3f1320469e59e96f651fd6330f23f486
7
+ data.tar.gz: 88926dac634285fa0353c6b7ba165b259dd07b378c1faddf3455cb4a0f5b61a95c410c463df016aeafea12d57d688c533c64eeaabad562d21ba2a63b8051b016
data/README CHANGED
@@ -19,3 +19,9 @@ Usage: sysdeps [ -u ][ -p ][ -d ][ -j ][ -v ][ -
19
19
  The dependencies cache must be built before. (sysdeps -u)
20
20
 
21
21
  Ex usage: 'sysdeps -p dd -p tar -d dbus'
22
+
23
+ -----
24
+ Files
25
+ -----
26
+
27
+ Cache file is located under '~/.sysdeps_cache.json'
@@ -19,7 +19,7 @@ require 'json'
19
19
 
20
20
  include SysDeps
21
21
 
22
- VERSION = '0.0.4'
22
+ VERSION = '0.0.5'
23
23
  CACHE_PATH = ENV['HOME'] + '/.sysdeps_cache.json'
24
24
 
25
25
  KDEPENDENCIES = 'dependencies'.freeze
@@ -49,7 +49,7 @@ help = ->() {
49
49
 
50
50
  build_cache = ->() {
51
51
  STDERR.print 'Collecting system libs infos ... '
52
- syslibs = SysDeps.get_syslibs
52
+ syslibs = SysDeps.get_syslibs ['/proc', '/sys', '/dev']
53
53
  STDERR.puts 'done'
54
54
 
55
55
  STDERR.print 'Collecting dependencies of programs ... '
data/changelog CHANGED
@@ -11,3 +11,7 @@
11
11
  - added -v option
12
12
  - scan the entire system for libraries instead of restricting search to specific
13
13
  paths, to support a wide set of linux distros
14
+
15
+ 0.0.5:
16
+ - fixed utf-8 encoding error
17
+ - do not scan only /proc, /sys, and /dev
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  # sysdeps common
2
3
  #
3
4
  # Written in 2020 by Francesco Palumbo phranz@subfc.net
@@ -27,12 +28,20 @@ readlink_absolute = ->(path) {
27
28
  abs }
28
29
 
29
30
 
30
- get_syslibs = -> {
31
+ get_syslibs = ->(excluded) {
31
32
  sopat = /\.so\.?/
32
33
 
33
- %x(find / \\( -type f -o -type l \\) 2>/dev/null)
34
- .split
35
- .select { |l| l[sopat] }
34
+ dirs = (Dir.each_child('/')
35
+ .map { |c| '/' + c }
36
+ .select { |c| File.directory?(c) } - excluded)
37
+ .join ' '
38
+
39
+ res = %x(find #{dirs} \\( -type f -o -type l \\) 2>/dev/null)
40
+
41
+ unless res.valid_encoding?
42
+ res.encode("UTF-8", :invalid=>:replace, :replace=>"?")
43
+ end .split
44
+ .select { |l| l[sopat] && File.exist?(l) }
36
45
  .map { |l|
37
46
  if File.ftype(l) == LINK
38
47
  fp = readlink_absolute(l)
@@ -58,7 +67,7 @@ get_program_dependencies = ->(prg) {
58
67
  return nil if %x(file #{prgpath}).split[1] != ELF
59
68
 
60
69
  deppat = /\s+#{DEPMARK}\s+/
61
- %x(objdump -p #{prgpath})
70
+ %x(objdump -p #{prgpath} 2>/dev/null)
62
71
  .split("\n")
63
72
  .select { |r| r.include? DEPMARK }
64
73
  .map { |r| r.gsub(deppat, EMPTY) }}
@@ -74,7 +83,7 @@ get_programs_dependencies = ->() {
74
83
  next if %x{file #{l}}.split[1] != ELF
75
84
 
76
85
  o[l.chomp] =
77
- %x{objdump -p #{l}}
86
+ %x{objdump -p #{l} 2>/dev/null}
78
87
  .split("\n")
79
88
  .select { |r| r.include? DEPMARK }
80
89
  .map { |r| r.gsub(deppat, EMPTY) }}}}
@@ -90,7 +99,7 @@ get_libraries_dependencies = ->(syslibs) {
90
99
  next if %x{file #{sl}}.split[1] != ELF
91
100
 
92
101
  o[sl.chomp] =
93
- %x{objdump -p #{sl}}
102
+ %x{objdump -p #{sl} 2>/dev/null}
94
103
  .split("\n")
95
104
  .select { |r| r.include? DEPMARK }
96
105
  .map { |r| r.gsub(deppat, EMPTY) }}}
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sysdeps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Palumbo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2020-05-25 00:00:00.000000000 Z
@@ -29,7 +29,7 @@ homepage: https://gitlab.com/phranz/sysdeps
29
29
  licenses:
30
30
  - CC0-1.0
31
31
  metadata: {}
32
- post_install_message:
32
+ post_install_message:
33
33
  rdoc_options: []
34
34
  require_paths:
35
35
  - lib
@@ -45,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
45
  version: '0'
46
46
  requirements: []
47
47
  rubygems_version: 3.1.2
48
- signing_key:
48
+ signing_key:
49
49
  specification_version: 4
50
50
  summary: Linux system dependencies helper
51
51
  test_files: []