buildhosts 0.0.1 → 0.0.2

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: 221c73813e4781338e4a66d5ec3cce48b07559ea
4
- data.tar.gz: 95df595ecfec9bc4db1685c86a50356a055ac205
3
+ metadata.gz: 03ec0ab7bc45e163d3c1f018b00ca2e557136c17
4
+ data.tar.gz: 9da6efcacf54aa3940dfb4260b98e173ed1513c7
5
5
  SHA512:
6
- metadata.gz: 4c50b83175c36cfb7523898ef68d3bb01da46c48e72a0e04839f1f68fb0b4674871c7dfc8c44db9097f28ead0f1e81a44f5fc17215922775a43a668a9a2363aa
7
- data.tar.gz: bf9b2a7c95d6ec818f9a2c9d6dca19f5b86f78dd2d67f9c47a53785c7d1e25fcbf1d201e72ff72d75dcf2f4aa316b7c37a35f1bd51a93929af14ecca4d0b209f
6
+ metadata.gz: a32c8a1d188a32570219591ac1511df36a8023f4bd2f95534c02bf8670c97d6d6d28b369834f186bd9f04bc3bcc2547b862fd18a62cd57de3a404d727d4a6723
7
+ data.tar.gz: 7ae6b0dc91ab805800ea12fe8575dfed806c91b74332e5f9a21b08b1c5beca7b0c385b0664b642585cfd02097b2838f52a18c3ecfc6b797b6bdd23e04641b7ec
data/README.md CHANGED
@@ -1,24 +1,127 @@
1
1
  # Buildhosts
2
2
 
3
- TODO: Write a gem description
3
+ This script will:
4
4
 
5
- ## Installation
5
+ + change your life
6
+ + make you smarter
7
+ + grant you three wishes, and
8
+ + do none of the above.
6
9
 
7
- Add this line to your application's Gemfile:
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.
8
15
 
9
- gem 'buildhosts'
16
+ ### Manginx
10
17
 
11
- And then execute:
18
+ Also included in `manginx`, a script that helps with using xip.io with nginx.
12
19
 
13
- $ bundle
20
+ ## Installation
14
21
 
15
- Or install it yourself as:
22
+ That's easy:
16
23
 
17
24
  $ gem install buildhosts
18
25
 
26
+ You will want to *back up your current `hosts` file*, though.
27
+
19
28
  ## Usage
20
29
 
21
- TODO: Write usage instructions here
30
+ To edit your config file, type
31
+
32
+ $ buildhosts -e
33
+
34
+
35
+ You can add custom hosts by typing
36
+
37
+ $ buildhosts -c
38
+
39
+
40
+ List your hosts with
41
+
42
+ $ buildhosts -l
43
+
44
+
45
+ Run manginx with
46
+
47
+ $ buildhosts --nginx
48
+
49
+
50
+ Just running `buildhosts` will recompile your hosts file.
51
+
52
+
53
+ About the IP Address Section
54
+ ----------------------------
55
+
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
+
60
+ Configuring the Script
61
+ ----------------------
62
+
63
+ If you run `buildhosts` with this `config` file:
64
+
65
+ ### sample-config:
66
+
67
+ [hosts]
68
+ foobar.local
69
+ example.local
70
+ [ips]
71
+ 192.168.1.1
72
+ 192.168.0.1
73
+ 10.0.1.1
74
+
75
+ it will produce this output:
76
+
77
+ ### /etc/hosts
78
+ ##
79
+ # Host Database
80
+ #
81
+ # localhost is used to configure the loopback interface
82
+ # when the system is booting. Do not change this entry.
83
+ ##
84
+ 127.0.0.1 localhost
85
+ 255.255.255.255 broadcasthost
86
+ ::1 localhost
87
+ fe80::1%lo0 localhost
88
+
89
+ ::1 example.local
90
+ 127.0.0.1 example.local
91
+ ::1 example.local.10.0.1.1.xip.io
92
+ 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
+ ::1 example.local.192.168.1.1.xip.io
96
+ 127.0.0.1 example.local.192.168.1.1.xip.io
97
+ ::1 foobar.local
98
+ 127.0.0.1 foobar.local
99
+ ::1 foobar.local.10.0.1.1.xip.io
100
+ 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
+ ::1 foobar.local.192.168.1.1.xip.io
104
+ 127.0.0.1 foobar.local.192.168.1.1.xip.io
105
+
106
+ Simple enough? I thought so.
107
+
108
+ Manginx
109
+ -------
110
+
111
+ To run manginx, just do
112
+
113
+ $ buildhosts --nginx
114
+
115
+
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:
118
+
119
+ ### Before:
120
+ server_name foobar.local;
121
+
122
+ ### After:
123
+ server_name foobar.local;
124
+ include xip/foobar.local;
22
125
 
23
126
  ## Contributing
24
127
 
data/bin/buildhosts CHANGED
@@ -2,53 +2,43 @@
2
2
 
3
3
  require 'buildhosts'
4
4
 
5
+ $path = File.expand_path('../../', __FILE__)
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']
20
+
5
21
  case ARGV[0]
6
22
  when "-e"
7
- system("vim config")
23
+ system("vim #{$files['config']}")
8
24
  when "-c"
9
- system("vim custom")
25
+ system("vim #{$files['custom']}")
10
26
  when "-ec"
11
- system("vim config ; vim custom")
27
+ system("vim #{$files['config']} ; vim #{$files['custom']}")
12
28
  when "-ce"
13
- system("vim custom ; vim config")
29
+ system("vim #{$files['custom']} ; vim #{$files['config']}")
14
30
  when "-l"
15
31
  system("grep 127.0.0.1 /etc/hosts | grep -Ev 'xip.io|localhost' | awk '{print $2}'")
16
32
  exit
17
33
  when "--nginx", "-nginx"
18
- puts "Will run manginx"
19
- puts "Then reload nginx"
20
- exit
21
- else
22
- puts "Usage: "
34
+ puts "TODO: run manginx..."
23
35
  exit
24
36
  end
25
37
 
38
+ # Do all the stuff
26
39
  puts "Building..."
27
- Buildhosts::Main.build
28
- system("")
29
- system("cat header custom newhosts > temp")
30
- system("sudo cp temp /etc/hosts")
31
- system("rm newhosts temp")
40
+ Buildhosts::Main.build $files['config'], $files['newhosts']
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']}")
32
44
  puts "Done!"
33
- #if [ "$1" == "-e" ]; then
34
- #vim config
35
- #elif [ "$1" == "-c" ]; then
36
- #vim custom
37
- #elif [ "$1" == "-ec" ]; then
38
- #vim config ; vim custom
39
- #elif [ "$1" == "-ce" ]; then
40
- #vim custom ; vim config
41
- #elif [ "$1" == "-l" ]; then
42
- #grep 127.0.0.1 /etc/hosts | grep -Ev 'xip.io|localhost' | awk '{print $2}'
43
- #exit 0
44
- #elif [ "$1" == "--nginx" ]; then
45
- #ruby manginx.rb
46
- #nginx -s reload
47
- #exit 0
48
- #fi
49
-
50
- #ruby buildhosts.rb
51
-
52
- #cat header custom newhosts > temp
53
- #sudo cp temp /etc/hosts
54
- #rm newhosts temp
data/config CHANGED
@@ -1,13 +1,7 @@
1
1
  [hosts]
2
- macmurray.local
3
- allegheny.local
4
- ecochair.local
5
- echair2013.local
6
- usb.local
7
- blp.local
8
- hdvisa.local
9
- indian.local
10
- gitlife.mrmikea.local
2
+ foobar.local
3
+ example.local
11
4
  [ips]
12
- 192.168.200.110
13
-
5
+ 192.168.1.1
6
+ 192.168.0.1
7
+ 10.0.1.1
data/lib/buildhosts.rb CHANGED
@@ -3,17 +3,17 @@ require "buildhosts/ConfigParser"
3
3
 
4
4
  module Buildhosts
5
5
  class Main
6
- def self.build
6
+ def self.build config, newhosts
7
7
  # Prefixy strings
8
8
  ipv6 = '::1 '
9
9
  home = '127.0.0.1 '
10
10
 
11
11
  # Grab that parser and parse
12
12
 
13
- conf = Buildhosts::ConfigParser.parse 'config'
13
+ conf = Buildhosts::ConfigParser.parse config
14
14
 
15
15
  # Write the lines to a "newhosts" file
16
- out = File.open('newhosts', 'w+')
16
+ out = File.open(newhosts, 'w+')
17
17
  conf['hosts'].each do |host|
18
18
  out.write "#{ipv6}#{host}\n"
19
19
  out.write "#{home}#{host}\n"
@@ -1,3 +1,3 @@
1
1
  module Buildhosts
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildhosts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Anderson
@@ -51,7 +51,6 @@ files:
51
51
  - .ruby-version
52
52
  - Gemfile
53
53
  - LICENSE.txt
54
- - README.markdown
55
54
  - README.md
56
55
  - Rakefile
57
56
  - bin/buildhosts
data/README.markdown DELETED
@@ -1,110 +0,0 @@
1
- Buildhosts
2
- =========
3
-
4
- This is just some info about this script. It will:
5
-
6
- + change your life
7
- + make you smarter
8
- + grant you three wishes, and
9
- + do none of the above.
10
-
11
- But really, this is just a script I wrote to write my /etc/hosts file for me.
12
- Configuring all the entries was a hassle, especially when using [xip.io](http://xip.io).
13
- This script takes your local hostnames (and the various IP address you need to pass
14
- to xip.io) and create all the necessary entries to access any of the hosts while
15
- passing any of the IPs to xip.io.
16
-
17
- ### Manginx
18
-
19
- Also included in `manginx`, a script that helps with using xip.io with nginx.
20
-
21
- Installing & Running the Script
22
- -------------------------------
23
-
24
- + BACK UP YOUR CURRENT HOSTS FILE!
25
- + To reiterate, **BACK UP YOUR CURRENT HOSTS FILE!**
26
- + Set shell variable `HOSTSPATH` to the script directory (i.e. ~/git/buildhosts)
27
- + Symlink the `buildhosts.sh` file to `~/bin/hosts` or something
28
- + Use `hosts -e` to edit your config file (explained below and in the `sample-config` file)
29
- + Any custom hosts can be put in a file named `custom`
30
- + Running `hosts` will recompile your `/etc/hosts` file
31
- + Running `hosts -l` will list the entries in your `/etc/hosts` file
32
-
33
- ### Example installation:
34
- mkdir -p ~/git
35
- cd ~/git
36
- git clone https://github.com/athaeryn/buildhosts.git
37
- sudo cp /etc/hosts /etc/hosts.bak
38
- export HOSTSPATH=~/git/buildhosts
39
- ln -s ~/git/buildhosts/buildhosts.sh ~/bin/hosts
40
- cp sample-config config
41
-
42
-
43
- About the IP Address Section
44
- ----------------------------
45
-
46
- The IP section is for working with xip.io, a DNS server that makes testing local
47
- websites on mobile devices much simpler. You can read more about it [here](http://xip.io).
48
- If you don't want to work with xip.io, don't include IP addresses in your config file (the ampersand is also not necessary).
49
-
50
- Configuring the Script
51
- ----------------------
52
-
53
- If you run `hosts` with this `config` file:
54
-
55
- ### sample-config:
56
-
57
- [hosts]
58
- foobar.local
59
- example.local
60
- [ips]
61
- 192.168.1.1
62
- 192.168.0.1
63
- 10.0.1.1
64
-
65
- it will produce this output:
66
-
67
- ### /etc/hosts
68
- ##
69
- # Host Database
70
- #
71
- # localhost is used to configure the loopback interface
72
- # when the system is booting. Do not change this entry.
73
- ##
74
- 127.0.0.1 localhost
75
- 255.255.255.255 broadcasthost
76
- ::1 localhost
77
- fe80::1%lo0 localhost
78
-
79
- ::1 example.local
80
- 127.0.0.1 example.local
81
- ::1 example.local.10.0.1.1.xip.io
82
- 127.0.0.1 example.local.10.0.1.1.xip.io
83
- ::1 example.local.192.168.0.1.xip.io
84
- 127.0.0.1 example.local.192.168.0.1.xip.io
85
- ::1 example.local.192.168.1.1.xip.io
86
- 127.0.0.1 example.local.192.168.1.1.xip.io
87
- ::1 foobar.local
88
- 127.0.0.1 foobar.local
89
- ::1 foobar.local.10.0.1.1.xip.io
90
- 127.0.0.1 foobar.local.10.0.1.1.xip.io
91
- ::1 foobar.local.192.168.0.1.xip.io
92
- 127.0.0.1 foobar.local.192.168.0.1.xip.io
93
- ::1 foobar.local.192.168.1.1.xip.io
94
- 127.0.0.1 foobar.local.192.168.1.1.xip.io
95
-
96
- Simple enough? I thought so.
97
-
98
- Manginx
99
- -------
100
-
101
- To run manginx, just do `hosts --nginx`.
102
- As far as configuring goes, just make sure you have an `xip` directory in the same directory as your `nginx.conf`.
103
- Then just duplicate and server_name lines and alter them like so:
104
-
105
- ### Before:
106
- server_name foobar.local;
107
-
108
- ### After:
109
- server_name foobar.local;
110
- include xip/foobar.local;