scout-essentials 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.vimproject +78 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +47 -0
- data/VERSION +1 -0
- data/lib/scout/cmd.rb +348 -0
- data/lib/scout/concurrent_stream.rb +284 -0
- data/lib/scout/config.rb +168 -0
- data/lib/scout/exceptions.rb +77 -0
- data/lib/scout/indiferent_hash/case_insensitive.rb +30 -0
- data/lib/scout/indiferent_hash/options.rb +115 -0
- data/lib/scout/indiferent_hash.rb +96 -0
- data/lib/scout/log/color.rb +224 -0
- data/lib/scout/log/color_class.rb +269 -0
- data/lib/scout/log/fingerprint.rb +69 -0
- data/lib/scout/log/progress/report.rb +244 -0
- data/lib/scout/log/progress/util.rb +173 -0
- data/lib/scout/log/progress.rb +106 -0
- data/lib/scout/log/trap.rb +107 -0
- data/lib/scout/log.rb +441 -0
- data/lib/scout/meta_extension.rb +100 -0
- data/lib/scout/misc/digest.rb +63 -0
- data/lib/scout/misc/filesystem.rb +25 -0
- data/lib/scout/misc/format.rb +255 -0
- data/lib/scout/misc/helper.rb +31 -0
- data/lib/scout/misc/insist.rb +56 -0
- data/lib/scout/misc/monitor.rb +66 -0
- data/lib/scout/misc/system.rb +73 -0
- data/lib/scout/misc.rb +10 -0
- data/lib/scout/named_array.rb +138 -0
- data/lib/scout/open/lock/lockfile.rb +587 -0
- data/lib/scout/open/lock.rb +68 -0
- data/lib/scout/open/remote.rb +135 -0
- data/lib/scout/open/stream.rb +491 -0
- data/lib/scout/open/util.rb +244 -0
- data/lib/scout/open.rb +170 -0
- data/lib/scout/path/find.rb +204 -0
- data/lib/scout/path/tmpfile.rb +8 -0
- data/lib/scout/path/util.rb +127 -0
- data/lib/scout/path.rb +51 -0
- data/lib/scout/persist/open.rb +17 -0
- data/lib/scout/persist/path.rb +15 -0
- data/lib/scout/persist/serialize.rb +157 -0
- data/lib/scout/persist.rb +104 -0
- data/lib/scout/resource/open.rb +8 -0
- data/lib/scout/resource/path.rb +80 -0
- data/lib/scout/resource/produce/rake.rb +69 -0
- data/lib/scout/resource/produce.rb +151 -0
- data/lib/scout/resource/scout.rb +3 -0
- data/lib/scout/resource/software.rb +178 -0
- data/lib/scout/resource/util.rb +59 -0
- data/lib/scout/resource.rb +40 -0
- data/lib/scout/simple_opt/accessor.rb +54 -0
- data/lib/scout/simple_opt/doc.rb +126 -0
- data/lib/scout/simple_opt/get.rb +57 -0
- data/lib/scout/simple_opt/parse.rb +67 -0
- data/lib/scout/simple_opt/setup.rb +26 -0
- data/lib/scout/simple_opt.rb +5 -0
- data/lib/scout/tmpfile.rb +129 -0
- data/lib/scout-essentials.rb +10 -0
- data/scout-essentials.gemspec +143 -0
- data/share/color/color_names +507 -0
- data/share/color/diverging_colors.hex +12 -0
- data/share/software/install_helpers +523 -0
- data/test/scout/indiferent_hash/test_case_insensitive.rb +16 -0
- data/test/scout/indiferent_hash/test_options.rb +46 -0
- data/test/scout/log/test_color.rb +0 -0
- data/test/scout/log/test_progress.rb +108 -0
- data/test/scout/misc/test_digest.rb +30 -0
- data/test/scout/misc/test_filesystem.rb +30 -0
- data/test/scout/misc/test_insist.rb +13 -0
- data/test/scout/misc/test_system.rb +21 -0
- data/test/scout/open/test_lock.rb +52 -0
- data/test/scout/open/test_remote.rb +25 -0
- data/test/scout/open/test_stream.rb +676 -0
- data/test/scout/open/test_util.rb +73 -0
- data/test/scout/path/test_find.rb +110 -0
- data/test/scout/path/test_util.rb +22 -0
- data/test/scout/persist/test_open.rb +37 -0
- data/test/scout/persist/test_path.rb +37 -0
- data/test/scout/persist/test_serialize.rb +114 -0
- data/test/scout/resource/test_path.rb +58 -0
- data/test/scout/resource/test_produce.rb +94 -0
- data/test/scout/resource/test_software.rb +24 -0
- data/test/scout/resource/test_util.rb +38 -0
- data/test/scout/simple_opt/test_doc.rb +16 -0
- data/test/scout/simple_opt/test_get.rb +11 -0
- data/test/scout/simple_opt/test_parse.rb +10 -0
- data/test/scout/simple_opt/test_setup.rb +77 -0
- data/test/scout/test_cmd.rb +85 -0
- data/test/scout/test_concurrent_stream.rb +29 -0
- data/test/scout/test_config.rb +66 -0
- data/test/scout/test_indiferent_hash.rb +26 -0
- data/test/scout/test_log.rb +32 -0
- data/test/scout/test_meta_extension.rb +80 -0
- data/test/scout/test_misc.rb +6 -0
- data/test/scout/test_named_array.rb +43 -0
- data/test/scout/test_open.rb +146 -0
- data/test/scout/test_path.rb +54 -0
- data/test/scout/test_persist.rb +186 -0
- data/test/scout/test_resource.rb +26 -0
- data/test/scout/test_tmpfile.rb +53 -0
- data/test/test_helper.rb +50 -0
- metadata +247 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestMiscDigest < Test::Unit::TestCase
|
5
|
+
def test_digest_str
|
6
|
+
o = {:a => [1,2,3], :b => [1.1, 0.00001, 'hola']}
|
7
|
+
assert Misc.digest_str(o).include? "hola"
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_digest_stream_located
|
11
|
+
TmpFile.with_file("TEST") do |filename|
|
12
|
+
Open.open(filename) do |f|
|
13
|
+
assert_equal 32, Misc.digest_str(f).length
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_digest_stream_unlocated
|
19
|
+
TmpFile.with_file do |directory|
|
20
|
+
Path.setup(directory)
|
21
|
+
Open.write(directory.share.file, "TEST")
|
22
|
+
Misc.in_dir directory do
|
23
|
+
Open.open(Path.setup('share/file')) do |f|
|
24
|
+
assert_equal '\'share/file\'', Misc.digest_str(Path.setup('share/file'))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestFilesystem < Test::Unit::TestCase
|
5
|
+
def test_in_dir
|
6
|
+
TmpFile.with_file do |tmpdir|
|
7
|
+
Misc.in_dir tmpdir do
|
8
|
+
assert_equal tmpdir, FileUtils.pwd
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_relative
|
14
|
+
assert_equal 'bar', Misc.path_relative_to("/tmp/foo", "/tmp/foo/bar")
|
15
|
+
assert_equal 'bar/other', Misc.path_relative_to("/tmp/foo", "/tmp/foo/bar/other")
|
16
|
+
|
17
|
+
refute Misc.path_relative_to("/tmp/bar", "/tmp/foo/bar/other")
|
18
|
+
refute Misc.path_relative_to("/tmp/foo", "tmp/foo/bar/other")
|
19
|
+
|
20
|
+
TmpFile.with_file do |tmpdir|
|
21
|
+
Misc.in_dir tmpdir do
|
22
|
+
assert Misc.path_relative_to(tmpdir, "foo")
|
23
|
+
assert Misc.path_relative_to(tmpdir, File.join(tmpdir, "foo"))
|
24
|
+
end
|
25
|
+
assert Misc.path_relative_to(tmpdir, File.join(tmpdir, "foo"))
|
26
|
+
assert Misc.path_relative_to(File.dirname(tmpdir), File.join(tmpdir, "foo"))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestMiscInsist < Test::Unit::TestCase
|
5
|
+
def test_insist
|
6
|
+
i = 0
|
7
|
+
Misc.insist do
|
8
|
+
i += 1
|
9
|
+
raise "Not yet" if i < 3
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestMiscSystem < Test::Unit::TestCase
|
5
|
+
setup do
|
6
|
+
ENV.delete "TEST_VAR"
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_env_add
|
10
|
+
Misc.env_add "TEST_VAR", "test_value1"
|
11
|
+
Misc.env_add "TEST_VAR", "test_value2"
|
12
|
+
assert_equal "test_value2:test_value1", ENV["TEST_VAR"]
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_env_add_prepend
|
16
|
+
Misc.env_add "TEST_VAR", "test_value1", ":", false
|
17
|
+
Misc.env_add "TEST_VAR", "test_value2", ":", false
|
18
|
+
assert_equal "test_value1:test_value2", ENV["TEST_VAR"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'scout/tmpfile'
|
5
|
+
|
6
|
+
class TestLock < Test::Unit::TestCase
|
7
|
+
def test_locks
|
8
|
+
num = 10
|
9
|
+
TmpFile.with_file do |lockfile|
|
10
|
+
TmpFile.with_file do |output|
|
11
|
+
f = File.open(output, 'w')
|
12
|
+
thrs = num.times.collect do
|
13
|
+
Thread.new do
|
14
|
+
Open.lock lockfile, true, min_sleep: 0.01, max_sleep: 0.05, sleep_inc: 0.001 do
|
15
|
+
f.write "["
|
16
|
+
sleep 0.01
|
17
|
+
f.write "]"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
thrs.each{|t| t.join }
|
22
|
+
f.close
|
23
|
+
assert_equal "[]" * num, File.open(output).read
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_keep_locked
|
29
|
+
num = 10
|
30
|
+
TmpFile.with_file do |lockfile|
|
31
|
+
TmpFile.with_file do |output|
|
32
|
+
f = File.open(output, 'w')
|
33
|
+
thrs = num.times.collect do
|
34
|
+
Thread.new do
|
35
|
+
lock = Lockfile.new(lockfile, min_sleep: 0.01, max_sleep: 0.05, sleep_inc: 0.001)
|
36
|
+
res = Open.lock lock do
|
37
|
+
f.write "["
|
38
|
+
raise KeepLocked, "1"
|
39
|
+
end
|
40
|
+
f.write res
|
41
|
+
f.write "]"
|
42
|
+
lock.unlock
|
43
|
+
end
|
44
|
+
end
|
45
|
+
thrs.each{|t| t.join }
|
46
|
+
f.close
|
47
|
+
assert_equal "[1]" * num, File.open(output).read
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'scout/open'
|
5
|
+
|
6
|
+
class TestOpenRemote < Test::Unit::TestCase
|
7
|
+
def test_wget
|
8
|
+
teardown
|
9
|
+
5.times do
|
10
|
+
assert(Misc.fixutf8(Open.wget('http://google.com', :quiet => true, :nocache => true).read) =~ /html/)
|
11
|
+
assert(Misc.fixutf8(Open.wget('http://google.com', :quiet => true).read) =~ /html/)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_ssh
|
16
|
+
TmpFile.with_file("TEST") do |f|
|
17
|
+
begin
|
18
|
+
assert_equal "TEST", Open.ssh("ssh://localhost:#{f}").read
|
19
|
+
rescue ConcurrentStreamProcessFailed
|
20
|
+
raise $! unless $!.message.include? "Connection refused"
|
21
|
+
end
|
22
|
+
end if false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|