buildhosts 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd39ee6d2cf4a7bda58a8b798a3b75909095fde6
4
- data.tar.gz: f77559e91525d86add3987b6509034aac2b5a46f
3
+ metadata.gz: dcb1c66c0f2109dfc4acd09ef24ace9e30808a66
4
+ data.tar.gz: e49736b08f8a10917871e095f7fd7f30deee725b
5
5
  SHA512:
6
- metadata.gz: 07d66f06173d5a1e5b408c7fe80ea4a925765a635c049f72b94fd57b6b24b95b0a0142857bc1cd150fcd7430b640c1c3a273b1cf381b9125835725fb093532e5
7
- data.tar.gz: 34ccdf1682c6b1b1fd97a8f7fe48001f98ca95ee2d3abdb37d88c361eb2f46128b9e3e5d18a1c80387a9eddee62e3b95368c97b92e8f06aa066561c06f01d7e6
6
+ metadata.gz: 890455945cd7faea50fb2ae874789fdbbfc5521c47819784fb98b9f24f2206b1e642d90490c1db5552a443c16932ad881043e40b34ddfe0f0d6fd1f457a8e7cc
7
+ data.tar.gz: 9f193e3f2428ba0f55ba0eaed8945ad2ddf7c8c3c2c01a70d46a6c72dca5424407fe7f7410e19f4fb0eace8ccec693e76343aeb9a5ed923c43080e7dc247e70c
data/README.md CHANGED
@@ -1,21 +1,20 @@
1
1
  # Buildhosts
2
2
 
3
- This script will:
3
+ This is a script I wrote to write my `/etc/hosts` file for me.
4
4
 
5
- + change your life
6
- + make you smarter
7
- + grant you three wishes, and
8
- + do none of the above.
5
+ Configuring all the entries was a hassle, especially when using
6
+ [xip.io](http://xip.io). This script takes your local hostnames (and the
7
+ various IP address you need to pass to xip.io) and creates all the necessary
8
+ entries to access any of the hosts while passing any of the IPs to xip.io.
9
9
 
10
- But really, this is just a script I wrote to write my /etc/hosts file for me.
11
- Configuring all the entries was a hassle, especially when using [xip.io](http://xip.io).
12
- This script takes your local hostnames (and the various IP address you need to pass
13
- to xip.io) and create all the necessary entries to access any of the hosts while
14
- passing any of the IPs to xip.io.
10
+ Oh, and there's really no point in using this script if you're not using xip.io.
15
11
 
16
12
  ### Manginx
17
13
 
18
- Also included in `manginx`, a script that helps with using xip.io with nginx.
14
+ Also included is `manginx`, a script that keeps xip.io and nginx in harmony.
15
+ More on that later.
16
+
17
+
19
18
 
20
19
  ## Installation
21
20
 
@@ -23,58 +22,56 @@ That's easy:
23
22
 
24
23
  $ gem install buildhosts
25
24
 
26
- You will want to *back up your current `hosts` file*, though.
25
+ Boom.
26
+
27
27
 
28
28
  ## Usage
29
29
 
30
- To edit your config file, type
30
+ Before you do anything, *back up your current `/etc/hosts` file!*
31
+
32
+ ##### To edit your config file, type
31
33
 
32
34
  $ buildhosts -e
33
35
 
36
+ You should do that before doing anything else (except backing up your
37
+ `/etc/hosts` file, do that first).
34
38
 
35
- You can add custom hosts by typing
39
+
40
+ ##### You can add custom hosts by typing
36
41
 
37
42
  $ buildhosts -c
38
43
 
39
44
 
40
- List your hosts with
45
+ ##### List your hosts with
41
46
 
42
47
  $ buildhosts -l
43
48
 
44
-
45
- Run manginx with
46
-
47
- $ buildhosts --nginx
49
+ Note: this does not list the IPs, only the hosts.
48
50
 
49
51
 
50
- Just running `buildhosts` will recompile your hosts file.
52
+ ##### Run manginx with
51
53
 
54
+ $ buildhosts --nginx
52
55
 
53
- About the IP Address Section
54
- ----------------------------
55
56
 
56
- The IP section is for working with xip.io, a DNS server that makes testing local
57
- websites on mobile devices much simpler. You can read more about it [here](http://xip.io).
58
- If you don't want to work with xip.io, don't include the IP address section in your config file.
59
57
 
60
- Configuring the Script
61
- ----------------------
58
+ ## Configuration
62
59
 
63
60
  If you run `buildhosts` with this `config` file:
64
61
 
65
- ### sample-config:
62
+ #### sample-config
66
63
 
67
64
  [hosts]
68
65
  foobar.local
69
66
  example.local
70
67
  [ips]
71
68
  192.168.1.1
72
- 192.168.0.1
73
69
  10.0.1.1
74
70
 
75
71
  it will produce this output:
76
72
 
77
- ### /etc/hosts
73
+ #### /etc/hosts
74
+
78
75
  ##
79
76
  # Host Database
80
77
  #
@@ -90,43 +87,46 @@ it will produce this output:
90
87
  127.0.0.1 example.local
91
88
  ::1 example.local.10.0.1.1.xip.io
92
89
  127.0.0.1 example.local.10.0.1.1.xip.io
93
- ::1 example.local.192.168.0.1.xip.io
94
- 127.0.0.1 example.local.192.168.0.1.xip.io
95
90
  ::1 example.local.192.168.1.1.xip.io
96
91
  127.0.0.1 example.local.192.168.1.1.xip.io
97
92
  ::1 foobar.local
98
93
  127.0.0.1 foobar.local
99
94
  ::1 foobar.local.10.0.1.1.xip.io
100
95
  127.0.0.1 foobar.local.10.0.1.1.xip.io
101
- ::1 foobar.local.192.168.0.1.xip.io
102
- 127.0.0.1 foobar.local.192.168.0.1.xip.io
103
96
  ::1 foobar.local.192.168.1.1.xip.io
104
97
  127.0.0.1 foobar.local.192.168.1.1.xip.io
105
98
 
106
- Simple enough? I thought so.
107
99
 
108
- Manginx
109
- -------
110
100
 
111
- To run manginx, just do
101
+ ## Manginx
102
+
103
+ For each host you specified in the `config`, manginx will create a file that
104
+ contains duplicate server_name directives for the host, but with all the
105
+ necessary xip.io URLs appended. You just need to include that file in your
106
+ `nginx.conf` (see below) and run
112
107
 
113
108
  $ buildhosts --nginx
114
109
 
110
+ Note: make sure you have a `xip/` directory in the same directory as your
111
+ `nginx.conf`.
112
+
113
+ #### To include the file,
115
114
 
116
- As far as configuring goes, just make sure you have an `xip` directory in the same directory as your `nginx.conf`.
117
- Then just duplicate any server_name lines in your `nginx.conf` and alter them like so:
115
+ just duplicate any server_name lines in your
116
+ `nginx.conf` and modify them like this:
118
117
 
119
- ### Before:
118
+ ##### Before:
120
119
  server_name foobar.local;
121
120
 
122
- ### After:
121
+ ##### After:
123
122
  server_name foobar.local;
124
123
  include xip/foobar.local;
125
124
 
126
- ## Contributing
127
125
 
128
- 1. Fork it
129
- 2. Create your feature branch (`git checkout -b my-new-feature`)
130
- 3. Commit your changes (`git commit -am 'Add some feature'`)
131
- 4. Push to the branch (`git push origin my-new-feature`)
132
- 5. Create new Pull Request
126
+ ### Vim protip:
127
+
128
+ From a server_name line (in normal mode):
129
+
130
+ yypRinclude xip/
131
+
132
+ If you've got a lot of lines to do, make that a macro; you won't regret it.
File without changes
File without changes
File without changes
data/lib/buildhosts.rb CHANGED
@@ -7,7 +7,7 @@ module Buildhosts
7
7
  attr_reader :path
8
8
 
9
9
  def initialize
10
- @path = File.expand_path('../../', __FILE__)
10
+ @path = File.expand_path('../../files/', __FILE__)
11
11
  @files = Hash.new
12
12
  ['config', 'custom', 'header', 'newhosts', 'temp'].each do |f|
13
13
  if (File.exist?(File.expand_path("~/.buildhosts/#{f}")))
@@ -22,6 +22,7 @@ module Buildhosts
22
22
  puts 'What\'s the point?'
23
23
  exit
24
24
  end
25
+ system('mkdir -p /usr/local/etc/nginx/xip')
25
26
  # Let's find out what nginx is expecting from us...
26
27
  expected = Array.new
27
28
  n = File.open('/usr/local/etc/nginx/nginx.conf', 'r')
@@ -36,7 +37,7 @@ module Buildhosts
36
37
 
37
38
  # This is where the files will be stored.
38
39
  base_path = '/usr/local/etc/nginx/xip'
39
- `rm #{base_path}/*`
40
+ `rm -f #{base_path}/*`
40
41
 
41
42
  # Le bread and buttere
42
43
  expected.each do |file|
@@ -51,7 +52,7 @@ module Buildhosts
51
52
 
52
53
  # Now we just reload nginx and apologize if something goes rotten.
53
54
  done 'Reloading nginx...'
54
- if system('nginx -s reload')
55
+ if system('sudo nginx -s reload')
55
56
  done
56
57
  else
57
58
  puts "Oops!\nSomething went wrong... Sorry."
@@ -1,3 +1,3 @@
1
1
  module Buildhosts
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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.3
4
+ version: 0.0.4
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-02 00:00:00.000000000 Z
11
+ date: 2013-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,15 +55,13 @@ files:
55
55
  - Rakefile
56
56
  - bin/buildhosts
57
57
  - buildhosts.gemspec
58
- - config
59
- - custom
60
- - header
58
+ - files/config
59
+ - files/custom
60
+ - files/header
61
61
  - lib/buildhosts.rb
62
62
  - lib/buildhosts/ConfigParser.rb
63
63
  - lib/buildhosts/Manginx.rb
64
64
  - lib/buildhosts/version.rb
65
- - lib/old.buildhosts.rb
66
- - sample-config
67
65
  homepage: ''
68
66
  licenses:
69
67
  - MIT
@@ -1,22 +0,0 @@
1
- require './ConfigParser.rb'
2
-
3
- # Prefixy strings
4
- ipv6 = '::1 '
5
- home = '127.0.0.1 '
6
-
7
- # Grab that parser and parse
8
- p = ConfigParser.new
9
- conf = p.parse 'config'
10
-
11
- # Write the lines to a "newhosts" file
12
- out = File.open('newhosts', 'w+')
13
- conf['hosts'].each do |host|
14
- out.write "#{ipv6}#{host}\n"
15
- out.write "#{home}#{host}\n"
16
- conf['ips'].each do |ip|
17
- out.write "#{ipv6}#{host}.#{ip}.xip.io\n"
18
- out.write "#{home}#{host}.#{ip}.xip.io\n"
19
- end
20
- end
21
- out.close
22
-
data/sample-config DELETED
@@ -1,15 +0,0 @@
1
- # Hostnames go here, one per line
2
- foobar.local
3
- example.local
4
-
5
- # Don't delete the ampersand
6
- # (unless you also delete
7
- # everything below it).
8
- &
9
-
10
- # IP addresses for xip.io.
11
- # You can just leave this blank
12
- # if you're not using it.
13
- 192.168.1.1
14
- 192.168.0.1
15
- 10.0.1.1