nerve-services-osx 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dc546cd974910f9cc6aae75dcee45a86299a4f4b
4
+ data.tar.gz: 5b866a204abd633b5772816bb0b51ccff26c516d
5
+ SHA512:
6
+ metadata.gz: 2e2cb263e6966781c9241f3b41ed74b89d82ef74e2020d972fae95ada6712e231822596a25a4dac8648618c61f242970053d7cc97df5706e0f42d25ccaba704e
7
+ data.tar.gz: a88572c812848eba2cf0506cd76fca096b9f15ddd75bcc67a113167cbe6dd864d52ec2421061e7043f2e744169dd92b85bfc73e8d5ef75ce3cce9c17a645865a
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in nerve-services-osx.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Nerve::Services::Osx
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/nerve/services/osx`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'nerve-services-osx'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install nerve-services-osx
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/nerve-services-osx/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/bin/console ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "nerve/services/osx"
5
+
6
+ require "pry"
7
+ Pry.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
data/conf/services.yml ADDED
@@ -0,0 +1,37 @@
1
+ postgresql:
2
+ port: 5432
3
+ mysql:
4
+ port: 3306
5
+ smtp:
6
+ port: 1025
7
+ webmail:
8
+ port: 1080
9
+ uri: "/"
10
+ memcached:
11
+ port: 11211
12
+ redis:
13
+ port: 6379
14
+ zookeeper:
15
+ port: 2181
16
+ consul_http:
17
+ port: 8500
18
+ uri: "/ui/"
19
+ consul_dns:
20
+ port: 8600
21
+ consul:
22
+ port: 8300
23
+ logstash:
24
+ port: 11514
25
+ elasticsearch:
26
+ port: 9300
27
+ kibana:
28
+ port: 5601
29
+ uri: "/"
30
+ logstash_json:
31
+ port: 5228
32
+ entrance:
33
+ port: 2181
34
+ function: "zookeeper"
35
+ entrance:
36
+ port: 11514
37
+ function: "logstash"
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << "./lib"
4
+
5
+ require "bundler/setup"
6
+
7
+ Bundler.setup
8
+ Bundler.require
9
+
10
+ Nerve::Services::Osx.init
11
+ Nerve::Services::Osx.load
12
+ Nerve::Services::Osx.run daemon:false
@@ -0,0 +1,7 @@
1
+ module Nerve
2
+ module Services
3
+ module Osx
4
+ VERSION = "0.1.0"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,78 @@
1
+ require "nerve/services/osx/version"
2
+ require "nerve/easy/service"
3
+ require "nerve/easy/nerve"
4
+ require "yaml"
5
+ require "nerve"
6
+
7
+ module Nerve
8
+ module Services
9
+ module Osx
10
+ module Config
11
+ class << self
12
+ GLOBAL = "/etc/nerve"
13
+ INDIVIDUAL = "~/.nerve"
14
+ def global
15
+ GLOBAL
16
+ end
17
+ def individual
18
+ File.expand_path INDIVIDUAL
19
+ end
20
+ def gem
21
+ File.expand_path File.join(
22
+ __FILE__,
23
+ '..','..','..','..',
24
+ 'conf'
25
+ )
26
+ end
27
+ end
28
+ end
29
+ class << self
30
+ def init
31
+ config
32
+ end
33
+ def config
34
+ @config ||= ::Nerve::Easy::Nerve.new
35
+ end
36
+ def nerve
37
+ @nerve ||= ::Nerve::Nerve.new config.to_nerve
38
+ end
39
+ def load
40
+ [ Config.global, Config.individual, Config.gem ].each do |location|
41
+ cfg_path = File.expand_path File.join(location,'services.yml')
42
+ next unless File.exists? cfg_path
43
+ puts "Loading #{cfg_path}"
44
+ services = YAML.load File.read cfg_path
45
+ services.each do |service_name,settings|
46
+ service = {
47
+ application: service_name,
48
+ host: "127.0.0.1",
49
+ port: settings["port"].to_i,
50
+ interval: 10,
51
+ function: (settings["function"] || "common"),
52
+ type: (settings["uri"] ? "http" : "tcp"),
53
+ uri: settings["uri"],
54
+ }
55
+ config.announce ::Nerve::Easy::Service.new service
56
+ end
57
+ end
58
+ end
59
+ def pid_file
60
+ "/var/tmp/nerve-services.pid"
61
+ end
62
+ def shutdown
63
+ return unless File.exists? pid_file
64
+ puts "Stopping previous daemon"
65
+ Process.kill "KILL", (File.read(pid_file)).to_i rescue nil
66
+ end
67
+ def run daemon:true
68
+ shutdown
69
+ Thread.new { nerve.run }
70
+ r, _ = IO.pipe
71
+ File.write pid_file, Process.pid
72
+ Process.daemon if daemon
73
+ IO.select([r], nil)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'nerve/services/osx/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "nerve-services-osx"
8
+ spec.version = Nerve::Services::Osx::VERSION
9
+ spec.authors = ["Mathias Kaufmann"]
10
+ spec.email = ["me@stei.gr"]
11
+
12
+ spec.summary = %q{Simple script to announce local services.}
13
+ spec.description = %q{Simple script to announce local services.}
14
+ spec.homepage = "https://nerve.stei.gr/environment"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "nerve-easy"
22
+ spec.add_dependency "nerve"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.8"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nerve-services-osx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mathias Kaufmann
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nerve-easy
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nerve
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ description: Simple script to announce local services.
70
+ email:
71
+ - me@stei.gr
72
+ executables:
73
+ - nerve-services-osx
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - Gemfile
80
+ - README.md
81
+ - Rakefile
82
+ - bin/console
83
+ - bin/setup
84
+ - conf/services.yml
85
+ - exe/nerve-services-osx
86
+ - lib/nerve/services/osx.rb
87
+ - lib/nerve/services/osx/version.rb
88
+ - nerve-services-osx.gemspec
89
+ homepage: https://nerve.stei.gr/environment
90
+ licenses: []
91
+ metadata: {}
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 2.4.6
109
+ signing_key:
110
+ specification_version: 4
111
+ summary: Simple script to announce local services.
112
+ test_files: []