nanoc-tidy.rb 0.5.5 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/nanoc/tidy/filter.rb +2 -1
- data/lib/nanoc/tidy/spawn.rb +33 -5
- data/lib/nanoc/tidy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee29f7af6d3dbaf443aa2e35e52e696f184481641a493a29292d110760776c07
|
4
|
+
data.tar.gz: c42f3696900ea751574072d35a0005ed4dd2442cde77640e7a56a23f9794a500
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb1ad99a6c41a010f04d96483aac6cec646b153aeaaa0f827e2c2f176e5d0890435021a301e434600ab37623e5b824db75ce41826bde6b864a2da76a8e5be4ee
|
7
|
+
data.tar.gz: 648fa0abae522cf95225adc508991a7f5698cc4573e3d1cafd56a211fec6376a460c800142521bfe1ca4d400657b2b48fd96cf0074fdcaf2999a35d88259479f
|
data/lib/nanoc/tidy/filter.rb
CHANGED
@@ -26,7 +26,8 @@ module Nanoc::Tidy
|
|
26
26
|
path = temporary_file(content).path
|
27
27
|
spawn tidy,
|
28
28
|
[*default_argv, *(options[:argv] || []), "-modify", path],
|
29
|
-
|
29
|
+
err: File.join(tmpdir, "stderr"),
|
30
|
+
out: File.join(tmpdir, "stdout")
|
30
31
|
File.read(path).tap { rm(path) }
|
31
32
|
end
|
32
33
|
|
data/lib/nanoc/tidy/spawn.rb
CHANGED
@@ -1,9 +1,31 @@
|
|
1
1
|
module Nanoc::Tidy
|
2
2
|
module Spawn
|
3
|
+
require "securerandom"
|
4
|
+
require "fileutils"
|
3
5
|
Error = Class.new(RuntimeError)
|
4
|
-
|
6
|
+
|
7
|
+
##
|
8
|
+
# Spawns a process
|
9
|
+
#
|
10
|
+
# @param [String] exe
|
11
|
+
# The path to an executable
|
12
|
+
#
|
13
|
+
# @param [Array<String>] argv
|
14
|
+
# An array of command line arguments
|
15
|
+
#
|
16
|
+
# @param [String] err
|
17
|
+
# A path where stderr is redirected to
|
18
|
+
#
|
19
|
+
# @param [String] out
|
20
|
+
# A path where stdout is redirected to
|
21
|
+
#
|
22
|
+
# @return [void]
|
23
|
+
def spawn(exe, argv, err:, out:)
|
24
|
+
hex = SecureRandom.hex
|
25
|
+
err = "#{err}-ID#{hex}"
|
26
|
+
out = "#{out}-ID#{hex}"
|
5
27
|
Kernel.spawn(
|
6
|
-
exe, *argv, {
|
28
|
+
exe, *argv, { STDERR => err, STDOUT => out }
|
7
29
|
)
|
8
30
|
Process.wait
|
9
31
|
status = $?
|
@@ -14,16 +36,22 @@ module Nanoc::Tidy
|
|
14
36
|
# * 2: has errors
|
15
37
|
return if [0, 1].include?(status.exitstatus)
|
16
38
|
|
39
|
+
msgs = [err, out].map do
|
40
|
+
FileUtils.touch(_1)
|
41
|
+
[_1.gsub(Dir.getwd, ''), ":", File.binread(_1)].join
|
42
|
+
end.join("\n")
|
17
43
|
raise Error,
|
18
44
|
"#{File.basename(exe)} exited unsuccessfully " \
|
19
45
|
"(" \
|
20
46
|
"exit code: #{status.exitstatus}, " \
|
21
47
|
"item: #{item.identifier}" \
|
22
48
|
")" \
|
23
|
-
"\n"
|
24
|
-
"#{log.gsub(Dir.getwd, '')[1..]}:" \
|
25
|
-
"#{File.binread(log)}" \
|
49
|
+
"\n#{msgs}",
|
26
50
|
[]
|
51
|
+
ensure
|
52
|
+
[err, out]
|
53
|
+
.select { File.exist?(_1) }
|
54
|
+
.each { FileUtils.rm(_1) }
|
27
55
|
end
|
28
56
|
end
|
29
57
|
end
|
data/lib/nanoc/tidy/version.rb
CHANGED