buildhosts 0.0.2 → 0.0.3
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/bin/buildhosts +8 -24
- data/lib/buildhosts.rb +22 -5
- data/lib/buildhosts/Manginx.rb +67 -0
- data/lib/buildhosts/version.rb +1 -1
- metadata +3 -3
- data/lib/buildhosts/manginx.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd39ee6d2cf4a7bda58a8b798a3b75909095fde6
|
4
|
+
data.tar.gz: f77559e91525d86add3987b6509034aac2b5a46f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07d66f06173d5a1e5b408c7fe80ea4a925765a635c049f72b94fd57b6b24b95b0a0142857bc1cd150fcd7430b640c1c3a273b1cf381b9125835725fb093532e5
|
7
|
+
data.tar.gz: 34ccdf1682c6b1b1fd97a8f7fe48001f98ca95ee2d3abdb37d88c361eb2f46128b9e3e5d18a1c80387a9eddee62e3b95368c97b92e8f06aa066561c06f01d7e6
|
data/bin/buildhosts
CHANGED
@@ -1,44 +1,28 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'buildhosts'
|
4
|
+
require 'buildhosts/Manginx'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
$files = Hash.new
|
8
|
-
|
9
|
-
def find_files files
|
10
|
-
files.each do |f|
|
11
|
-
if (File.exist?(File.expand_path("~/.buildhosts/#{f}")))
|
12
|
-
$files[f] = File.expand_path("~/.buildhosts/#{f}").chomp
|
13
|
-
else
|
14
|
-
$files[f] = "#{$path}/#{f}".chomp
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
find_files ['config', 'custom', 'header', 'newhosts', 'temp']
|
6
|
+
main = Buildhosts::Main.new
|
20
7
|
|
21
8
|
case ARGV[0]
|
22
9
|
when "-e"
|
23
|
-
system("vim #{
|
10
|
+
system("vim #{main.files['config']}")
|
24
11
|
when "-c"
|
25
|
-
system("vim #{
|
12
|
+
system("vim #{main.files['custom']}")
|
26
13
|
when "-ec"
|
27
|
-
system("vim #{
|
14
|
+
system("vim #{main.files['config']} ; vim #{main.files['custom']}")
|
28
15
|
when "-ce"
|
29
|
-
system("vim #{
|
16
|
+
system("vim #{main.files['custom']} ; vim #{main.files['config']}")
|
30
17
|
when "-l"
|
31
18
|
system("grep 127.0.0.1 /etc/hosts | grep -Ev 'xip.io|localhost' | awk '{print $2}'")
|
32
19
|
exit
|
33
20
|
when "--nginx", "-nginx"
|
34
|
-
|
21
|
+
Buildhosts::Manginx.new(main.files['config']).run
|
35
22
|
exit
|
36
23
|
end
|
37
24
|
|
38
25
|
# Do all the stuff
|
39
26
|
puts "Building..."
|
40
|
-
|
41
|
-
system("cat #{$files['header']} #{$files['custom']} #{$files['newhosts']} > #{$files['temp']}")
|
42
|
-
system("sudo cp #{$files['temp']} /etc/hosts")
|
43
|
-
system("rm #{$files['newhosts']} #{$files['temp']}")
|
27
|
+
main.build
|
44
28
|
puts "Done!"
|
data/lib/buildhosts.rb
CHANGED
@@ -2,18 +2,32 @@ require "buildhosts/version"
|
|
2
2
|
require "buildhosts/ConfigParser"
|
3
3
|
|
4
4
|
module Buildhosts
|
5
|
-
class Main
|
6
|
-
|
5
|
+
class Main
|
6
|
+
attr_reader :files
|
7
|
+
attr_reader :path
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@path = File.expand_path('../../', __FILE__)
|
11
|
+
@files = Hash.new
|
12
|
+
['config', 'custom', 'header', 'newhosts', 'temp'].each do |f|
|
13
|
+
if (File.exist?(File.expand_path("~/.buildhosts/#{f}")))
|
14
|
+
@files[f] = File.expand_path("~/.buildhosts/#{f}").chomp
|
15
|
+
else
|
16
|
+
@files[f] = "#{@path}/#{f}".chomp
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def build
|
7
22
|
# Prefixy strings
|
8
23
|
ipv6 = '::1 '
|
9
24
|
home = '127.0.0.1 '
|
10
25
|
|
11
26
|
# Grab that parser and parse
|
12
|
-
|
13
|
-
conf = Buildhosts::ConfigParser.parse config
|
27
|
+
conf = Buildhosts::ConfigParser.parse @files['config']
|
14
28
|
|
15
29
|
# Write the lines to a "newhosts" file
|
16
|
-
out = File.open(newhosts, 'w+')
|
30
|
+
out = File.open(@files['newhosts'], 'w+')
|
17
31
|
conf['hosts'].each do |host|
|
18
32
|
out.write "#{ipv6}#{host}\n"
|
19
33
|
out.write "#{home}#{host}\n"
|
@@ -23,6 +37,9 @@ module Buildhosts
|
|
23
37
|
end
|
24
38
|
end
|
25
39
|
out.close
|
40
|
+
system("cat #{@files['header']} #{@files['custom']} #{@files['newhosts']} > #{@files['temp']}")
|
41
|
+
system("sudo cp #{@files['temp']} /etc/hosts")
|
42
|
+
system("rm #{@files['newhosts']} #{@files['temp']}")
|
26
43
|
end
|
27
44
|
end
|
28
45
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'buildhosts/ConfigParser'
|
2
|
+
|
3
|
+
module Buildhosts
|
4
|
+
class Manginx
|
5
|
+
|
6
|
+
def initialize config
|
7
|
+
# Set up teh parser and parse with it
|
8
|
+
@conf = Buildhosts::ConfigParser.parse config
|
9
|
+
end
|
10
|
+
|
11
|
+
# Helper methods to print common messages
|
12
|
+
def configuring what
|
13
|
+
puts "Configuring: #{what}..."
|
14
|
+
end
|
15
|
+
def done next_step=''
|
16
|
+
puts "Done! #{next_step}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def run
|
20
|
+
# If you don't have any IP addresses in your config, what are you doing here?
|
21
|
+
if @conf['ips'].nil? || @conf['ips'].empty?
|
22
|
+
puts 'What\'s the point?'
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
# Let's find out what nginx is expecting from us...
|
26
|
+
expected = Array.new
|
27
|
+
n = File.open('/usr/local/etc/nginx/nginx.conf', 'r')
|
28
|
+
n.each_line do |line|
|
29
|
+
# So basically, if the line goes "include xip/derp.local;", we want to
|
30
|
+
# set up a file with that name with the appropriate server_name directives.
|
31
|
+
match = line.match(/include\s+xip\/([\w\.]+);/)
|
32
|
+
if !match.nil? # We don't want to try to convert nil to an array...
|
33
|
+
expected << match.to_a[1..-1][0]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# This is where the files will be stored.
|
38
|
+
base_path = '/usr/local/etc/nginx/xip'
|
39
|
+
`rm #{base_path}/*`
|
40
|
+
|
41
|
+
# Le bread and buttere
|
42
|
+
expected.each do |file|
|
43
|
+
configuring file
|
44
|
+
out = File.open("#{base_path}/#{file}", 'w+')
|
45
|
+
@conf['ips'].each do |ip|
|
46
|
+
# Simple. Just put a line in there for each IP in our config file.
|
47
|
+
out.write "server_name #{file}.#{ip}.xip.io;\n"
|
48
|
+
end
|
49
|
+
out.close
|
50
|
+
end
|
51
|
+
|
52
|
+
# Now we just reload nginx and apologize if something goes rotten.
|
53
|
+
done 'Reloading nginx...'
|
54
|
+
if system('nginx -s reload')
|
55
|
+
done
|
56
|
+
else
|
57
|
+
puts "Oops!\nSomething went wrong... Sorry."
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
data/lib/buildhosts/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildhosts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Anderson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -60,7 +60,7 @@ files:
|
|
60
60
|
- header
|
61
61
|
- lib/buildhosts.rb
|
62
62
|
- lib/buildhosts/ConfigParser.rb
|
63
|
-
- lib/buildhosts/
|
63
|
+
- lib/buildhosts/Manginx.rb
|
64
64
|
- lib/buildhosts/version.rb
|
65
65
|
- lib/old.buildhosts.rb
|
66
66
|
- sample-config
|
data/lib/buildhosts/manginx.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
# Start by load the config parser
|
2
|
-
require './ConfigParser.rb'
|
3
|
-
|
4
|
-
# Helper methods to print common messages
|
5
|
-
def configuring what
|
6
|
-
puts "Configuring: #{what}..."
|
7
|
-
end
|
8
|
-
|
9
|
-
def done next_step=''
|
10
|
-
puts "Done! #{next_step}"
|
11
|
-
end
|
12
|
-
|
13
|
-
# Set up teh parser and parse with it
|
14
|
-
parser = ConfigParser.new
|
15
|
-
conf = parser.parse 'config'
|
16
|
-
|
17
|
-
# If you don't have any IP addresses in your config, what are you doing here?
|
18
|
-
if conf['ips'].nil? || conf['ips'].empty?
|
19
|
-
puts 'What\'s the point?'
|
20
|
-
exit
|
21
|
-
end
|
22
|
-
|
23
|
-
# Let's find out what nginx is expecting from us...
|
24
|
-
expected = Array.new
|
25
|
-
n = File.open('/usr/local/etc/nginx/nginx.conf', 'r')
|
26
|
-
n.each_line do |line|
|
27
|
-
# So basically, if the line goes "include xip/derp.local;", we want to
|
28
|
-
# set up a file with that name with the appropriate server_name directives.
|
29
|
-
match = line.match(/include\s+xip\/([\w\.]+);/)
|
30
|
-
if !match.nil? # We don't want to try to convert nil to an array...
|
31
|
-
expected << match.to_a[1..-1][0]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# This is where the files will be stored.
|
36
|
-
base_path = '/usr/local/etc/nginx/xip'
|
37
|
-
`rm #{base_path}/*`
|
38
|
-
|
39
|
-
# Le bread and buttere
|
40
|
-
expected.each do |file|
|
41
|
-
configuring file
|
42
|
-
out = File.open("#{base_path}/#{file}", 'w+')
|
43
|
-
conf['ips'].each do |ip|
|
44
|
-
# Simple. Just put a line in there for each IP in our config file.
|
45
|
-
out.write "server_name #{file}.#{ip}.xip.io;\n"
|
46
|
-
end
|
47
|
-
out.close
|
48
|
-
end
|
49
|
-
|
50
|
-
# Now we just reload nginx and apologize if something goes rotten.
|
51
|
-
done 'Reloading nginx...'
|
52
|
-
if system('nginx -s reload')
|
53
|
-
done
|
54
|
-
else
|
55
|
-
puts "Oops!\nSomething went wrong... Sorry."
|
56
|
-
end
|