sysdeps 0.0.4 → 0.0.5

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 (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: []