arli 0.8.3 → 0.9.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 +4 -4
- data/.gitignore +5 -4
- data/.travis.yml +16 -8
- data/README.md +235 -124
- data/Rakefile +1 -1
- data/arli.gemspec +1 -0
- data/exe/arli +1 -0
- data/lib/arli.rb +1 -1
- data/lib/arli/actions/action.rb +7 -33
- data/lib/arli/actions/unzip_file.rb +9 -6
- data/lib/arli/arli_file.rb +32 -28
- data/lib/arli/cli/app.rb +2 -3
- data/lib/arli/cli/command_finder.rb +2 -2
- data/lib/arli/cli/parser.rb +36 -9
- data/lib/arli/cli/parser_factory.rb +40 -38
- data/lib/arli/cli/runner.rb +0 -1
- data/lib/arli/commands/base.rb +2 -2
- data/lib/arli/commands/install.rb +49 -31
- data/lib/arli/commands/search.rb +40 -35
- data/lib/arli/configuration.rb +4 -3
- data/lib/arli/extensions.rb +6 -0
- data/lib/arli/helpers/inherited.rb +48 -0
- data/lib/arli/helpers/output.rb +187 -0
- data/lib/arli/library.rb +21 -2
- data/lib/arli/library/installer.rb +2 -2
- data/lib/arli/library/multi_version.rb +153 -0
- data/lib/arli/library/{proxy.rb → single_version.rb} +5 -20
- data/lib/arli/lock/file.rb +1 -2
- data/lib/arli/lock/formats/base.rb +8 -0
- data/lib/arli/lock/formats/cmake.rb +21 -5
- data/lib/arli/lock/formats/json.rb +2 -0
- data/lib/arli/lock/formats/text.rb +2 -0
- data/lib/arli/lock/formats/yaml.rb +3 -1
- data/lib/arli/version.rb +1 -1
- metadata +20 -5
- data/.rake_tasks~ +0 -8
- data/lib/arli/output.rb +0 -186
data/lib/arli/output.rb
DELETED
@@ -1,186 +0,0 @@
|
|
1
|
-
require 'colored2'
|
2
|
-
require 'tty-cursor'
|
3
|
-
|
4
|
-
module Arli
|
5
|
-
module Output
|
6
|
-
CHAR_FAILURE = '✖'.red
|
7
|
-
CHAR_SUCCESS = '✔'.green
|
8
|
-
|
9
|
-
class << self
|
10
|
-
attr_accessor :enabled, :cursor
|
11
|
-
|
12
|
-
def enable!
|
13
|
-
self.enabled = true
|
14
|
-
end
|
15
|
-
|
16
|
-
def enabled?
|
17
|
-
self.enabled
|
18
|
-
end
|
19
|
-
|
20
|
-
def disable!
|
21
|
-
self.enabled = false
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
self.enable!
|
26
|
-
self.cursor = TTY::Cursor
|
27
|
-
|
28
|
-
def cursor
|
29
|
-
Arli::Output.cursor
|
30
|
-
end
|
31
|
-
|
32
|
-
def info(msg, header = nil)
|
33
|
-
__pf('%-20s', header.blue) if header
|
34
|
-
__pf((header ? ' : ' : '') + msg + "\n") if msg
|
35
|
-
end
|
36
|
-
|
37
|
-
def debug(msg)
|
38
|
-
__pf('%-20s', header.blue) if header
|
39
|
-
__pf((header ? ' : ' : '') + msg + "\n") if msg
|
40
|
-
end
|
41
|
-
|
42
|
-
def error(msg, exception = nil)
|
43
|
-
__pf "#{msg.to_s.red}\n" if msg
|
44
|
-
__pf "#{exception.inspect.red}\n\n" if exception
|
45
|
-
end
|
46
|
-
|
47
|
-
def report_exception(e, header = nil)
|
48
|
-
if header
|
49
|
-
__pf header.bold.yellow + ': '
|
50
|
-
else
|
51
|
-
__pf 'Error: '.bold.red
|
52
|
-
end
|
53
|
-
error e.message if (e && e.respond_to?(:message))
|
54
|
-
if e && Arli.config.trace
|
55
|
-
__pf "\n"
|
56
|
-
__pf 'Top 10 stack trace'.bold.yellow + "\n"
|
57
|
-
__pf e.backtrace.reverse[-10..-1].join("\n").red + "\n"
|
58
|
-
elsif e
|
59
|
-
__pf "\nUse -t (--trace) for detailed exception\n" +
|
60
|
-
"or -D (--debug) to print Arli config\n"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def raise_invalid_arli_command!(cmd, e = nil)
|
65
|
-
raise Arli::Errors::InvalidCommandError.new(cmd)
|
66
|
-
end
|
67
|
-
|
68
|
-
# Shortcuts disabled in tests
|
69
|
-
def ___(msg = nil, newline = false)
|
70
|
-
return unless Arli::Output.enabled?
|
71
|
-
__pf msg if msg
|
72
|
-
__pt if newline
|
73
|
-
end
|
74
|
-
|
75
|
-
def __pt(*args)
|
76
|
-
puts(*args) if Arli::Output.enabled?
|
77
|
-
end
|
78
|
-
|
79
|
-
def __p(*args)
|
80
|
-
print(*args) if Arli::Output.enabled?
|
81
|
-
end
|
82
|
-
|
83
|
-
def __pf(*args)
|
84
|
-
printf(*args) if Arli::Output.enabled?
|
85
|
-
end
|
86
|
-
|
87
|
-
|
88
|
-
def print_target_dir(d, verb = 'installed')
|
89
|
-
print_action_success(d.green, "#{verb} #{d.green} ")
|
90
|
-
end
|
91
|
-
|
92
|
-
def print_action_starting(action_name)
|
93
|
-
if verbose?
|
94
|
-
indent_cursor
|
95
|
-
___ "⇨ #{action_name.yellow} ... "
|
96
|
-
end
|
97
|
-
if block_given?
|
98
|
-
yield
|
99
|
-
ok if verbose?
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def print_action_success(short, verbose = nil)
|
104
|
-
if verbose? && !quiet?
|
105
|
-
indent_cursor
|
106
|
-
___ "⇨ #{verbose || short} #{CHAR_SUCCESS}"
|
107
|
-
elsif !quiet?
|
108
|
-
___ "#{short} #{CHAR_SUCCESS} "
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def print_action_failure(short, verbose = nil)
|
113
|
-
if verbose? && !quiet?
|
114
|
-
indent_cursor
|
115
|
-
___ "⇨ #{verbose || short} #{CHAR_FAILURE}\n"
|
116
|
-
elsif !quiet?
|
117
|
-
___ "#{short} #{CHAR_FAILURE} "
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def action_fail(action, exception)
|
122
|
-
print_action_failure(action.class.action_name,
|
123
|
-
"#{action.class.action_name} failed with #{exception.message.red}\n" +
|
124
|
-
"Action Description: #{action.class.description}")
|
125
|
-
raise(exception)
|
126
|
-
end
|
127
|
-
|
128
|
-
def action_ok(action)
|
129
|
-
print_action_success(action.action_name)
|
130
|
-
end
|
131
|
-
|
132
|
-
def ok
|
133
|
-
___ " #{CHAR_SUCCESS} "
|
134
|
-
end
|
135
|
-
|
136
|
-
def fuck
|
137
|
-
___ " #{CHAR_FAILURE} "
|
138
|
-
end
|
139
|
-
|
140
|
-
def header(command: nil)
|
141
|
-
out = "\n#{hr}\n"
|
142
|
-
out << "Arli (#{::Arli::VERSION.yellow})"
|
143
|
-
out << ", Command: #{command.name.to_s.magenta.bold}" if command
|
144
|
-
if command && command.params && Arli.config.verbose
|
145
|
-
out << "\n#{command.params.to_s.blue}\n"
|
146
|
-
end
|
147
|
-
out << "\nLibrary Path: #{Arli.default_library_path.green}\n"
|
148
|
-
out << "#{hr}\n"
|
149
|
-
info out
|
150
|
-
end
|
151
|
-
|
152
|
-
def hr
|
153
|
-
('-' * (ENV['COLUMNS'] || 80)).red.dark
|
154
|
-
end
|
155
|
-
|
156
|
-
# Some shortcuts
|
157
|
-
def verbose?
|
158
|
-
config.verbose && !quiet?
|
159
|
-
end
|
160
|
-
|
161
|
-
def quiet?
|
162
|
-
config.quiet
|
163
|
-
end
|
164
|
-
|
165
|
-
def overwrite?
|
166
|
-
config.if_exists.overwrite
|
167
|
-
end
|
168
|
-
|
169
|
-
def backup?
|
170
|
-
config.if_exists.backup
|
171
|
-
end
|
172
|
-
|
173
|
-
def abort?
|
174
|
-
config.if_exists.abort
|
175
|
-
end
|
176
|
-
|
177
|
-
def debug?
|
178
|
-
config.debug
|
179
|
-
end
|
180
|
-
|
181
|
-
private
|
182
|
-
def indent_cursor
|
183
|
-
___ cursor.column(40)
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|