mina-faye 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6b2df924bb9672a48105571b4a08f73c39e73df5
4
+ data.tar.gz: d05ee41f6dc29a083fcb83d77c890973ad17e884
5
+ SHA512:
6
+ metadata.gz: 0d408d9527593a56eb3b35b16be00e95044f6f3e6d3abd9b55c03b029a66e5d7219ee7b7b16bc2be45590f09dc3e3219110008553184cba6fd9f3f8183629eef
7
+ data.tar.gz: c7469db5129b9df97acb9aa46b10978c6de82ce24488aa15a47e3124291a26de8242b6c1383f3a9e6a98bb19ab2b3e56871370049d599fdaedefbdc514995b00
@@ -0,0 +1 @@
1
+ mina-fyae
@@ -0,0 +1 @@
1
+ 2.1.2
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://www.rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,20 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mina-faye (0.1.0)
5
+ mina
6
+
7
+ GEM
8
+ remote: http://www.rubygems.org/
9
+ specs:
10
+ mina (0.3.0)
11
+ open4
12
+ rake
13
+ open4 (1.3.4)
14
+ rake (10.3.2)
15
+
16
+ PLATFORMS
17
+ ruby
18
+
19
+ DEPENDENCIES
20
+ mina-faye!
@@ -0,0 +1,9 @@
1
+ require "rake"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "test"
6
+ t.test_files = FileList["test/**/*_test.rb"]
7
+ end
8
+
9
+ task default: :test
@@ -0,0 +1,4 @@
1
+ require 'mina_faye/version'
2
+
3
+ module MinaFaye
4
+ end
@@ -0,0 +1,43 @@
1
+
2
+ require 'mina/bundler'
3
+ require 'mina/rails'
4
+
5
+ # ## Settings
6
+
7
+ # ### Faye
8
+
9
+ # Sets the path to faye config file
10
+ set_default :faye_config, lambda { "faye.ru" }
11
+
12
+ # Sets the path to the pid file of a faye
13
+ set_default :faye_pid, lambda { "#{deploy_to}/#{shared_path}/pids/faye.pid" }
14
+
15
+ namespace :faye do
16
+ desc "Stop Faye"
17
+ task :stop => :environment do
18
+ queue %[echo "-----> Stop Faye"]
19
+ queue %[
20
+ if [ -f #{faye_pid} ] && kill -KILL $(cat #{faye_pid})> /dev/null 2>&1; then
21
+ cd "#{deploy_to}/#{current_path}"
22
+ echo 'Faye stop'
23
+ else
24
+ echo 'Skip stopping faye (no pid file found)'
25
+ fi
26
+ ]
27
+ end
28
+ desc "Start Faye"
29
+ task :start => :environment do
30
+ queue %[echo "-----> Start Faye"]
31
+ queue %{
32
+ echo "Faye starting in #{rails_env}"
33
+ cd "#{deploy_to}/#{current_path}"
34
+ #{echo_cmd %[nohup rackup #{faye_config} -d -E #{rails_env} -p 9292 -P #{faye_pid} --daemonize ] }
35
+ }
36
+ end
37
+
38
+ desc "Restart Faye"
39
+ task :restart do
40
+ invoke :'faye:stop'
41
+ invoke :'faye:start'
42
+ end
43
+ end
@@ -0,0 +1,5 @@
1
+ module MinaFaye
2
+ def self.version
3
+ "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "./lib/mina_faye/version.rb"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mina-faye"
7
+ s.version = MinaFaye.version
8
+ s.authors = ["Kostyantin Semchenko"]
9
+ s.email = ["Ningen.UA@gmail.com"]
10
+ s.homepage = "https://github.com/NingenUA/mina-faye"
11
+ s.summary = "Tasks to deploy Faye with mina."
12
+ s.description = "Adds tasks to aid in the deployment of Faye"
13
+ s.license = "MIT"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+ s.add_runtime_dependency "mina"
20
+ end
@@ -0,0 +1,53 @@
1
+ require "test_helper"
2
+
3
+ describe "mina_faye" do
4
+ before do
5
+ @old_cwd = Dir.pwd
6
+ @env_root = TEST_ROOT.join("..", "test_env")
7
+ Dir.chdir(@env_root)
8
+ FileUtils.rm_rf("deploy")
9
+ end
10
+ after { Dir.chdir(@old_cwd) }
11
+
12
+ def mina(task)
13
+ cmd = "bundle exec mina --verbose #{task}"
14
+ puts "$ #{cmd}"
15
+ system cmd
16
+ end
17
+
18
+ def check_process(pid)
19
+ begin
20
+ Process.kill(0, pid)
21
+ return true
22
+ rescue Errno::EPERM => e
23
+ puts "No permission to query #{pid}!"
24
+ raise e
25
+ rescue Errno::ESRCH
26
+ puts "#{pid} is NOT running."
27
+ return false
28
+ rescue
29
+ puts "Unable to determine status for #{pid} : #{$!}"
30
+ end
31
+ end
32
+
33
+ describe "setup" do
34
+ before(:all) { mina "setup" }
35
+
36
+ it "should deploy" do
37
+ begin
38
+ # fresh deploy
39
+ mina "deploy"
40
+ # second deploy
41
+ mina "deploy"
42
+ rescue Exception => e
43
+ log = "./deploy/shared/faye.log"
44
+ if File.exists?(log)
45
+ puts "cat #{log}"
46
+ puts File.open(log).read
47
+ end
48
+ raise e
49
+ end
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,63 @@
1
+ require "minitest/spec"
2
+ require "minitest/autorun"
3
+ require 'pathname'
4
+
5
+ TEST_ROOT = Pathname.new(File.dirname(__FILE__))
6
+
7
+ module MiniTestWithHooks
8
+ class Unit < MiniTest::Unit
9
+ def before_suites; end
10
+ def after_suites; end
11
+
12
+ def _run_suites(suites, type)
13
+ begin
14
+ before_suites
15
+ super(suites, type)
16
+ ensure
17
+ after_suites
18
+ end
19
+ end
20
+
21
+ def _run_suite(suite, type)
22
+ begin
23
+ suite.before_suite
24
+ super(suite, type)
25
+ ensure
26
+ suite.after_suite
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ module MiniTestWithTransactions
33
+ class Unit < MiniTestWithHooks::Unit
34
+ def before_suites
35
+ super
36
+ if ENV["FORCE_ADD_SSH_KEY"]
37
+ force_add_ssh_key
38
+ end
39
+ end
40
+ def force_add_ssh_key(&block)
41
+ ssh_key = File.expand_path("~/.ssh/id_rsa.pub")
42
+ unless File.exists?(ssh_key)
43
+ sh "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa"
44
+ end
45
+ file = File.open(ssh_key)
46
+ pub_key = file.readline
47
+ file.close
48
+
49
+ authorized_keys = File.expand_path("~/.ssh/authorized_keys")
50
+ begin
51
+ File.open(authorized_keys, "a+") do |f|
52
+ File.chmod(0600, authorized_keys)
53
+ f.puts(pub_key)
54
+ end
55
+ rescue Exception => e
56
+ puts e.message
57
+ puts e.backtrace.inspect
58
+ ensure
59
+ File.chmod(0400, authorized_keys)
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,48 @@
1
+ require 'mina'
2
+ require 'mina/git'
3
+ require 'mina_faye/tasks'
4
+ require 'mina/git'
5
+ require 'mina/bundler'
6
+ require 'mina/rvm'
7
+ require 'fileutils'
8
+
9
+
10
+ FileUtils.mkdir_p "#{Dir.pwd}/deploy"
11
+
12
+ set :ssh_options, '-o StrictHostKeyChecking=no'
13
+
14
+ set :domain, 'localhost'
15
+ set :deploy_to, "#{Dir.pwd}/deploy"
16
+ set :repository, 'https://github.com/NingenUA/mina_faye_rails_test.git'
17
+ set :keep_releases, 2
18
+ set :sidekiq_processes, 2
19
+
20
+ set :shared_paths, ['log']
21
+ set :term_mode, nil
22
+
23
+ task :environment do
24
+ invoke :'rvm:use[ruby-2.1.2]'
25
+ end
26
+
27
+ task setup: :environment do
28
+ queue! %[mkdir -p "#{deploy_to}/shared/pids/"]
29
+ queue! %[mkdir -p "#{deploy_to}/shared/log/"]
30
+ end
31
+
32
+ task deploy: :environment do
33
+ deploy do
34
+ invoke :'git:clone'
35
+ invoke :'deploy:link_shared_paths'
36
+ invoke :'bundle:install'
37
+
38
+ to :launch do
39
+ invoke :'faye:start'
40
+ queue! %[sleep 3; kill -0 `cat #{faye_pid}`]
41
+
42
+
43
+
44
+ invoke :'faye:stop'
45
+ queue! %[(kill -0 `cat #{faye_pid}`) 2> /dev/null && exit 1 || exit 0]
46
+ end
47
+ end
48
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mina-faye
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kostyantin Semchenko
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mina
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
+ description: Adds tasks to aid in the deployment of Faye
28
+ email:
29
+ - Ningen.UA@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".ruby-gemset"
35
+ - ".ruby-version"
36
+ - Gemfile
37
+ - Gemfile.lock
38
+ - Rakefile
39
+ - lib/mina_faye.rb
40
+ - lib/mina_faye/tasks.rb
41
+ - lib/mina_faye/version.rb
42
+ - mina-faye.gemspec
43
+ - test/deploy_test.rb
44
+ - test/test_helper.rb
45
+ - test_env/config/deploy.rb
46
+ homepage: https://github.com/NingenUA/mina-faye
47
+ licenses:
48
+ - MIT
49
+ metadata: {}
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ requirements: []
65
+ rubyforge_project:
66
+ rubygems_version: 2.2.2
67
+ signing_key:
68
+ specification_version: 4
69
+ summary: Tasks to deploy Faye with mina.
70
+ test_files: []