magnit 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/magnit +16 -3
- data/magnit.gemspec +1 -1
- metadata +2 -2
data/bin/magnit
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require 'rbconfig'
|
3
|
+
IS_WINDOWS = (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
|
2
4
|
|
3
5
|
class String
|
4
6
|
def colorize(color_code)
|
@@ -84,14 +86,25 @@ def watch(identifier)
|
|
84
86
|
raise "Invalid identifier #{identifier.to_s}" unless valid_identifier?(identifier)
|
85
87
|
raise "Already watching #{identifier.to_s}" if $pids[identifier]
|
86
88
|
puts File.expand_path($dirs[identifier])
|
87
|
-
|
89
|
+
options = { chdir: File.expand_path($dirs[identifier]) }
|
90
|
+
# On *nix launch process as process group leader to be able to
|
91
|
+
# kill all children processes later
|
92
|
+
options[:pgroup] = true unless IS_WINDOWS
|
93
|
+
$pids[identifier] = spawn($cmds[identifier], options)
|
88
94
|
puts "spawned watcher with pid: #{$pids[identifier]}"
|
89
95
|
end
|
90
96
|
|
91
97
|
def stop(identifier)
|
92
98
|
raise "Invalid identifier #{identifier.to_s}" unless valid_identifier?(identifier)
|
93
99
|
raise "Not watching #{identifier.to_s}" unless $pids[identifier]
|
94
|
-
|
100
|
+
# Take care of child processes
|
101
|
+
# On Windows it's better handled by taskkill
|
102
|
+
# On nix just pass negative process group
|
103
|
+
if IS_WINDOWS
|
104
|
+
`taskkill /F /T /PID #{$pids[identifier]}`
|
105
|
+
else
|
106
|
+
Process.kill('INT', -$pids[identifier])
|
107
|
+
end
|
95
108
|
Process.wait($pids[identifier])
|
96
109
|
puts "killed watcher with pid: #{$pids[identifier]}"
|
97
110
|
$pids[identifier] = nil
|
@@ -133,7 +146,7 @@ while true
|
|
133
146
|
puts 'Huh ?'
|
134
147
|
end
|
135
148
|
rescue RuntimeError => e
|
136
|
-
$stderr.puts "
|
149
|
+
$stderr.puts "magnit error: #{e.to_s}"
|
137
150
|
end
|
138
151
|
end
|
139
152
|
|
data/magnit.gemspec
CHANGED
@@ -2,7 +2,7 @@ require 'base64'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'magnit'
|
5
|
-
s.version = '0.0.
|
5
|
+
s.version = '0.0.2'
|
6
6
|
s.summary = 'watch & recompile compass/stylus/less/etc'
|
7
7
|
s.description = <<-EOF
|
8
8
|
magnit is a CLI tool to watch & recompile compass/stylus/less projects. It is a
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magnit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'magnit is a CLI tool to watch & recompile compass/stylus/less projects.
|
15
15
|
It is a
|