upm 0.1.13 → 0.1.14

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: 675637d1104dcbf53a07642dcce7385e24d83019730394a28662aba0146e6445
4
- data.tar.gz: '04598f9d40c671d90ff4a129cae40426ed33c332632a570366d238159a4156fb'
3
+ metadata.gz: d35aa5412644879ebc18e848569dff6bf7274e09831a5733d63ab5fedffa1916
4
+ data.tar.gz: '09b5f1c4461fea7e092cc3ce630e7586c5bd127e849e173245f4c00c9df1d79f'
5
5
  SHA512:
6
- metadata.gz: 1b7503c5afe5f88a482611ca8dc9b05a1189571522e4b7c5234e4651f15e418fe106e9ec627ab164aa0edc9bf6584004e1415bcbbc068e2cdff93bea5889eb94
7
- data.tar.gz: 569590e5f1e8298a63ea04cfa784c52316868535acf40f1f74f8c1307b3708ffe5ae1cc0330f27efdd8359eb7a6e3f10279d51d146505d404dc9031071a422f7
6
+ metadata.gz: d7837f1491c9bdfa1c08fd8a5bcad5f265bbef08d26c0bdfc2b8ee526d1ad50106b6b598edb92c7af658c8c9df6602e26ac94516a7502261a368d405e3894bfc
7
+ data.tar.gz: 35a96cabe424135bafbab8b760b4cfc2de04b4c2d9811420c004625ab9cb8aea67bbfa1108c8ddaf68d3324eea94fe808b9ce3674100779d6ba4495c61588b75
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.13
1
+ 0.1.14
@@ -49,7 +49,7 @@ def lesspipe(*args)
49
49
 
50
50
  less_bin = File.which("less")
51
51
 
52
- if File.symlink?(less_bin) and File.readlink(lessbin)[/busybox$/]
52
+ if File.symlink?(less_bin) and File.readlink(less_bin)[/busybox$/]
53
53
  # busybox less only supports one option!
54
54
  params << "-S" unless options[:wrap] == true
55
55
  else
@@ -2,7 +2,7 @@ module UPM
2
2
  class Tool
3
3
  module DSL
4
4
  def identifying_binary(id_bin=nil)
5
- if id_bin
5
+ if id_bin
6
6
  @id_bin = id_bin
7
7
  else
8
8
  @id_bin || @name
@@ -25,7 +25,7 @@ module UPM
25
25
  end
26
26
 
27
27
  elsif shell_command
28
-
28
+
29
29
  if shell_command.is_a? String
30
30
  shell_command = shell_command.split
31
31
  elsif not shell_command.is_a? Array
@@ -38,9 +38,9 @@ module UPM
38
38
  end
39
39
 
40
40
  else
41
-
41
+
42
42
  raise "Error: Must supply a block or shell command"
43
-
43
+
44
44
  end
45
45
  end
46
46
 
@@ -50,27 +50,27 @@ module UPM
50
50
 
51
51
  ## Helpers
52
52
 
53
- def run(*args, root: false, paged: false, grep: nil, highlight: nil)
53
+ def run(*args, root: false, paged: false, grep: nil, highlight: nil, sort: false)
54
54
  if root
55
55
  if Process.uid != 0
56
- if File.which("sudo")
56
+ if File.which("sudo")
57
57
  args.unshift "sudo"
58
58
  elsif File.which("su")
59
59
  args = ["su", "-c"] + args
60
60
  else
61
61
  raise "Error: You must be root to run this command. (And I couldn't find the 'sudo' *or* 'su' commands.)"
62
62
  end
63
- end
63
+ end
64
64
  end
65
65
 
66
- if !paged and !grep
66
+
67
+ unless paged or grep or sort
67
68
  system(*args)
68
69
  else
69
-
70
70
  IO.popen(args, err: [:child, :out]) do |command_io|
71
-
71
+
72
72
  # if grep
73
- # pattern = grep.is_a?(Regexp) ? grep.source : grep.to_s
73
+ # pattern = grep.is_a?(Regexp) ? grep.source : grep.to_s
74
74
  # grep_io = IO.popen(["grep", "--color=always", "-Ei", pattern], "w+")
75
75
  # IO.copy_stream(command_io, grep_io)
76
76
  # grep_io.close_write
@@ -91,17 +91,16 @@ module UPM
91
91
  # proc { |line| line }
92
92
  # end
93
93
 
94
- grep_proc = if grep
95
- proc { |line| line[grep] }
96
- else
97
- proc { true }
98
- end
99
-
100
- lesspipe(disabled: !paged, search: highlight, always: true) do |less|
101
- command_io.each_line do |line|
102
- # less.puts highlight_proc.(line) if grep_proc.(line)
103
- less.puts line if grep_proc.(line)
94
+ lesspipe(disabled: !paged, search: highlight, always: false) do |less|
95
+ each_proc = if grep
96
+ proc { |line| less.puts line if line[grep] }
97
+ else
98
+ proc { |line| less.puts line }
104
99
  end
100
+
101
+ lines = command_io.each_line
102
+ lines = lines.to_a.sort if sort
103
+ lines.each(&each_proc)
105
104
  end
106
105
 
107
106
  end
@@ -3,18 +3,22 @@ UPM::Tool.new "apk" do
3
3
  os "alpine"
4
4
 
5
5
  command "install", "apk add", root: true
6
+ command "remove", "apk del", root: true
6
7
  command "update", "apk update", root: true
7
8
  command "upgrade", "apk upgrade", root: true
9
+ command "clean", "apk clean", root: true
8
10
 
9
- command "files", "apk info -L", paged: true
10
- command "search", "apk search", paged: true
11
+ command "files", "apk info -L", paged: true
12
+ command "search" do |args|
13
+ query = args.join(".+")
14
+ run "apk", "search", *args, sort: true, paged: true, highlight: query
15
+ end
11
16
 
12
- command "clean", "apk clean"
13
-
14
17
  command "list" do |args|
15
18
  if args.any?
16
- query = args.join
17
- run "apk", "info", grep: query, paged: true
19
+ highlight_query = args.join(".+")
20
+ grep_query = /#{highlight_query}/
21
+ run "apk", "info", grep: grep_query, highlight: highlight_query, paged: true
18
22
  else
19
23
  run "apk", "info", paged: true
20
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - epitron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-16 00:00:00.000000000 Z
11
+ date: 2018-07-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Wrap all known command-line package tools with a consistent and pretty
14
14
  interface.