bonethug 0.0.79 → 0.0.80
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.
- data/TODO.txt +4 -1
- data/config/deploy.rb +4 -3
- data/lib/bonethug/syncer.rb +2 -2
- data/lib/bonethug/version.rb +2 -2
- data/scripts/ubuntu_setup.sh +102 -104
- data/scripts/ubuntu_setup_2.4.sh +2 -3
- data/skel/project_types/php/bower.json +18 -0
- data/skel/project_types/php/composer.json +13 -2
- data/skel/project_types/php/lib/Thug/Conf/Load.php +91 -0
- data/skel/skel.yml +6 -0
- metadata +6 -4
data/TODO.txt
CHANGED
@@ -3,4 +3,7 @@
|
|
3
3
|
- thug auth {staging|production} - this would inject your ssh pub key into the authorized_keys file
|
4
4
|
- need to allow support for other environment types
|
5
5
|
- have some sort of composer.json merge
|
6
|
-
- thug update needs stil needs to be run twice because the current version gets loaded into memory - need to run some sort of two phase update
|
6
|
+
- thug update needs stil needs to be run twice because the current version gets loaded into memory - need to run some sort of two phase update
|
7
|
+
- some things need to run prior to there being a deploy copy - eg. init-db
|
8
|
+
- conf should return nil if it can't find a node
|
9
|
+
- rbenv library support - rbenv gays out with 2.x needs readline headers manually specified
|
data/config/deploy.rb
CHANGED
@@ -220,7 +220,7 @@ task :sync_backup_from => :environment do
|
|
220
220
|
queue! %[#{ssh_pass} ssh #{rsync.get('user')}@#{rsync.get('host')} mkdir -p #{path}]
|
221
221
|
(resources + log_dirs).each do |item|
|
222
222
|
|
223
|
-
queue! %[cd #{deploy_to}/current && rsync -
|
223
|
+
queue! %[cd #{deploy_to}/current && rsync -avz -e "#{ssh_pass} ssh -l #{rsync.get('user')}" --delete --progress ./#{item} #{rsync.get('host')}:#{path}/]
|
224
224
|
|
225
225
|
end
|
226
226
|
else
|
@@ -236,7 +236,7 @@ task :sync_backup_to => :environment do
|
|
236
236
|
queue! %[#{ssh_pass} ssh #{rsync.get('user')}@#{rsync.get('host')} mkdir -p #{path}]
|
237
237
|
(resources + log_dirs).each do |item|
|
238
238
|
|
239
|
-
queue! %[cd #{deploy_to}/current && rsync -
|
239
|
+
queue! %[cd #{deploy_to}/current && rsync -avz -e "#{ssh_pass} ssh -l #{rsync.get('user')}" --delete --progress #{rsync.get('host')}:#{path}/#{item} ./]
|
240
240
|
|
241
241
|
end
|
242
242
|
else
|
@@ -436,8 +436,9 @@ task :deploy => :environment do
|
|
436
436
|
invoke :'deploy:cleanup'
|
437
437
|
|
438
438
|
# run post deploy commands
|
439
|
-
cmds = conf.get
|
439
|
+
cmds = conf.get 'post_cmds'
|
440
440
|
if cmds
|
441
|
+
cmds = cmds.get env
|
441
442
|
cmds.each do |index, cmd|
|
442
443
|
queue cmd
|
443
444
|
end
|
data/lib/bonethug/syncer.rb
CHANGED
@@ -94,9 +94,9 @@ module Bonethug
|
|
94
94
|
(resources + log_dirs).each do |item|
|
95
95
|
|
96
96
|
if push == 'local' and pull == 'remote'
|
97
|
-
cmd = "rsync -
|
97
|
+
cmd = "rsync -avz -e \"ssh -p #{remote_deploy.get('port')} -l #{remote_deploy.get('user')}\" --delete --progress #{remote_deploy.get('domain')}:#{remote_path}/current/#{item}/ #{exec_path}/#{item}/"
|
98
98
|
elsif pull == 'local' and push == 'remote'
|
99
|
-
cmd = "rsync -
|
99
|
+
cmd = "rsync -avz -e \"ssh -p #{remote_deploy.get('port')} -l #{remote_deploy.get('user')}\" --delete --progress #{exec_path}/#{item}/ #{remote_deploy.get('domain')}:#{remote_path}/current/#{item}/"
|
100
100
|
end
|
101
101
|
|
102
102
|
puts cmd
|
data/lib/bonethug/version.rb
CHANGED
data/scripts/ubuntu_setup.sh
CHANGED
@@ -1,105 +1,103 @@
|
|
1
|
-
# /bin/bash
|
2
|
-
|
3
|
-
# -----------------------------------------------------
|
4
|
-
# install native stuff
|
5
|
-
# -----------------------------------------------------
|
6
|
-
|
7
|
-
# install the repo adding scripts
|
8
|
-
sudo apt-get install software-properties-common python-software-properties
|
9
|
-
|
10
|
-
# add repos
|
11
|
-
sudo add-apt-repository ppa:richarvey/nodejs
|
12
|
-
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
13
|
-
sudo add-apt-repository "deb-src http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
#
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
sudo apt-get install
|
28
|
-
sudo apt-get install
|
29
|
-
sudo apt-get install
|
30
|
-
sudo apt-get install
|
31
|
-
sudo apt-get install
|
32
|
-
sudo apt-get install
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
# -----------------------------------------------------
|
38
|
-
|
39
|
-
#
|
40
|
-
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
|
61
|
-
sed -i -e "s/listen = \/var\/run\/php5-fpm.sock/listen = 127.0.0.1:9000/g" /etc/php5/fpm/pool.d/www.conf
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
#
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
# -----------------------------------------------------
|
82
|
-
|
83
|
-
#
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
sudo
|
90
|
-
sudo
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
# -----------------------------------------------------
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
# -----------------------------------------------------
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
sudo service apache2 restart
|
1
|
+
# /bin/bash
|
2
|
+
|
3
|
+
# -----------------------------------------------------
|
4
|
+
# install native stuff
|
5
|
+
# -----------------------------------------------------
|
6
|
+
|
7
|
+
# install the repo adding scripts
|
8
|
+
sudo apt-get install software-properties-common python-software-properties
|
9
|
+
|
10
|
+
# add repos
|
11
|
+
sudo add-apt-repository ppa:richarvey/nodejs
|
12
|
+
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
13
|
+
sudo add-apt-repository "deb-src http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
14
|
+
sudo add-apt-repository ppa:ondrej/apache2
|
15
|
+
sudo add-apt-repository ppa:ondrej/php5
|
16
|
+
|
17
|
+
# update
|
18
|
+
sudo apt-get update && sudo apt-get upgrade
|
19
|
+
|
20
|
+
# install
|
21
|
+
|
22
|
+
# dev headers
|
23
|
+
sudo apt-get install libcurl4-openssl-dev libssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev libapr1-dev libaprutil1-dev
|
24
|
+
sudo apt-get install libmysqlclient-dev libmagickwand-dev libsqlite3-dev libxml2-dev libxslt1-dev
|
25
|
+
|
26
|
+
# regular packages
|
27
|
+
sudo apt-get install apache2-mpm-worker
|
28
|
+
sudo apt-get install curl libapache2-mod-fastcgi php5-fpm php5 php5-cli php5-curl php5-gd php5-imagick php-apc php5-mysql
|
29
|
+
sudo apt-get install mysql-server mysql-client sqlite3
|
30
|
+
sudo apt-get install imagemagick
|
31
|
+
sudo apt-get install phpmyadmin
|
32
|
+
sudo apt-get install sshpass
|
33
|
+
sudo apt-get install libxml2 g++
|
34
|
+
sudo apt-get install git ruby1.9.3 nodejs npm
|
35
|
+
|
36
|
+
|
37
|
+
# -----------------------------------------------------
|
38
|
+
# Configure stuff
|
39
|
+
# -----------------------------------------------------
|
40
|
+
|
41
|
+
# unix socket
|
42
|
+
# echo "
|
43
|
+
# <IfModule mod_fastcgi.c>
|
44
|
+
# AddHandler php5-fcgi .php
|
45
|
+
# Action php5-fcgi /php5-fcgi
|
46
|
+
# Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
|
47
|
+
# FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
|
48
|
+
# </IfModule>
|
49
|
+
# " > /etc/apache2/conf.d/php-fpm.conf
|
50
|
+
# sed -i -e "s/listen = 127.0.0.1:9000/listen = \/var\/run\/php5-fpm.sock/g" /etc/php5/fpm/pool.d/www.conf
|
51
|
+
|
52
|
+
## TCP
|
53
|
+
# echo "
|
54
|
+
# <IfModule mod_fastcgi.c>
|
55
|
+
# AddHandler php5-fcgi .php
|
56
|
+
# Action php5-fcgi /php5-fcgi
|
57
|
+
# Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
|
58
|
+
# FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -idle-timeout 250 -pass-header Authorization
|
59
|
+
# </IfModule>
|
60
|
+
# " > /etc/apache2/conf.d/php-fpm.conf
|
61
|
+
# sed -i -e "s/listen = \/var\/run\/php5-fpm.sock/listen = 127.0.0.1:9000/g" /etc/php5/fpm/pool.d/www.conf
|
62
|
+
|
63
|
+
sed -i -e "s/listen = \/var\/run\/php5-fpm.sock/listen = 127.0.0.1:9000/g" /etc/php5/fpm/pool.d/www.conf
|
64
|
+
sudo echo -e "<IfModule mod_fastcgi.c>\n AddHandler php5-fcgi .php\n Action php5-fcgi /php5-fcgi\n Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi\n FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -appConnTimeout 900 -idle-timeout 900 -pass-header Authorization\n </IfModule>" > /etc/apache2/conf.d/php-fpm.conf
|
65
|
+
|
66
|
+
#apache2.4
|
67
|
+
sudo echo -e "<IfModule mod_fastcgi.c>\n AddHandler php5-fcgi .php\n Action php5-fcgi /php5-fcgi\n Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi\n FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -appConnTimeout 900 -idle-timeout 900 -pass-header Authorization\n <Directory />\nRequire all granted\n </Directory>\n </IfModule>" > /etc/apache2/conf-available/php-fpm.conf
|
68
|
+
a2enconf php-fpm.conf
|
69
|
+
|
70
|
+
# Apache
|
71
|
+
# ------
|
72
|
+
|
73
|
+
# modules
|
74
|
+
sudo a2enmod actions fastcgi alias rewrite headers
|
75
|
+
|
76
|
+
# phpmyadmin
|
77
|
+
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
|
78
|
+
|
79
|
+
# -----------------------------------------------------
|
80
|
+
# Install Gems
|
81
|
+
# -----------------------------------------------------
|
82
|
+
|
83
|
+
# install some gems - yes gem1.9.3 - wtf
|
84
|
+
sudo gem1.9.3 install mina bundler whenever astrails-safe
|
85
|
+
|
86
|
+
# install passenger
|
87
|
+
sudo gem1.9.3 install passenger
|
88
|
+
sudo passenger-install-apache2-module
|
89
|
+
sudo touch /etc/apache2/mods-available/passenger.load
|
90
|
+
sudo touch /etc/apache2/mods-available/passenger.conf
|
91
|
+
|
92
|
+
# -----------------------------------------------------
|
93
|
+
# Node.js related
|
94
|
+
# -----------------------------------------------------
|
95
|
+
|
96
|
+
npm install bower -g
|
97
|
+
|
98
|
+
# -----------------------------------------------------
|
99
|
+
# Restart stuff
|
100
|
+
# -----------------------------------------------------
|
101
|
+
|
102
|
+
sudo service apache2 restart
|
105
103
|
sudo service php5-fpm restart
|
data/scripts/ubuntu_setup_2.4.sh
CHANGED
@@ -11,6 +11,8 @@ sudo apt-get install software-properties-common python-software-properties
|
|
11
11
|
# sudo add-apt-repository ppa:richarvey/nodejs
|
12
12
|
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
13
13
|
sudo add-apt-repository "deb-src http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
|
14
|
+
sudo add-apt-repository ppa:ondrej/apache2
|
15
|
+
sudo add-apt-repository ppa:ondrej/php5
|
14
16
|
|
15
17
|
# update
|
16
18
|
sudo apt-get update && sudo apt-get upgrade
|
@@ -71,9 +73,6 @@ a2enconf php-fpm.conf
|
|
71
73
|
# modules
|
72
74
|
sudo a2enmod actions fastcgi alias rewrite headers
|
73
75
|
|
74
|
-
# phpmyadmin
|
75
|
-
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
|
76
|
-
|
77
76
|
# phpmyadmin apache 2.4
|
78
77
|
cp /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
|
79
78
|
a2enconf phpmyadmin.conf
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"name": "bonethug/php",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"authors": [
|
5
|
+
"azt3k <breaks.nz@gmail.com>"
|
6
|
+
],
|
7
|
+
"license": "MIT",
|
8
|
+
"private": true,
|
9
|
+
"dependencies": {
|
10
|
+
"jquery" : "~1.11.0",
|
11
|
+
"modernizr" : "git://github.com/Modernizr/Modernizr.git",
|
12
|
+
"respond" : "git://github.com/scottjehl/Respond.git",
|
13
|
+
"picturefill" : "git://github.com/scottjehl/picturefill.git",
|
14
|
+
"selectivizr" : "https://raw.githubusercontent.com/keithclark/selectivizr/master/selectivizr.js",
|
15
|
+
"html5-boilerplate" : "~4.3.0",
|
16
|
+
"yepnope" : "git://github.com/SlexAxton/yepnope.js.git"
|
17
|
+
}
|
18
|
+
}
|
@@ -1,5 +1,16 @@
|
|
1
1
|
{
|
2
|
-
|
3
|
-
|
2
|
+
"name" : "bonethug/php",
|
3
|
+
"repositories": [
|
4
|
+
],
|
5
|
+
"require": {
|
6
|
+
"symfony/yaml" : "2.5.*@dev"
|
7
|
+
},
|
8
|
+
"extra": {
|
9
|
+
"installer-paths": {
|
10
|
+
"public/vendor/{$name}": [
|
11
|
+
],
|
12
|
+
"public/{$name}": [
|
13
|
+
]
|
4
14
|
}
|
15
|
+
}
|
5
16
|
}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
namespace Thug\Conf;
|
4
|
+
|
5
|
+
use Symfony\Component\Yaml\Yaml;
|
6
|
+
|
7
|
+
require realpath(__DIR__ . '/../../../vendor/autoload.php');
|
8
|
+
|
9
|
+
class Load {
|
10
|
+
|
11
|
+
protected static $constants_set = false;
|
12
|
+
protected static $application_env = null;
|
13
|
+
protected static $ss_environment_type = null;
|
14
|
+
|
15
|
+
public static function get_application_env() {
|
16
|
+
self::set_constants();
|
17
|
+
return self::$application_env;
|
18
|
+
}
|
19
|
+
|
20
|
+
public static function env() {
|
21
|
+
return self::get_application_env();
|
22
|
+
}
|
23
|
+
|
24
|
+
public static function get_ss_environment_type() {
|
25
|
+
// ensure constants are set;
|
26
|
+
self::set_constants();
|
27
|
+
return self::$ss_environment_type;
|
28
|
+
}
|
29
|
+
|
30
|
+
public static function translate_env($env) {
|
31
|
+
if (!empty(self::$ss_env[$env])) {
|
32
|
+
return self::$ss_env[$env];
|
33
|
+
} else {
|
34
|
+
return $env;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
public static function set_constants() {
|
39
|
+
|
40
|
+
if (!self::$constants_set) {
|
41
|
+
|
42
|
+
// Transfer environmental vars to constants
|
43
|
+
$env = getenv('APPLICATION_ENV');
|
44
|
+
if (!$env) $env = 'production';
|
45
|
+
|
46
|
+
if (!defined('APPLICATION_ENV')) define('APPLICATION_ENV', $env);
|
47
|
+
if (!defined('PATH')) define('PATH', getenv('PATH'));
|
48
|
+
|
49
|
+
self::$constants_set = true;
|
50
|
+
self::$application_env = APPLICATION_ENV;
|
51
|
+
|
52
|
+
}
|
53
|
+
|
54
|
+
}
|
55
|
+
|
56
|
+
public static function cnf() {
|
57
|
+
|
58
|
+
// ensure constants are set;
|
59
|
+
self::set_constants();
|
60
|
+
|
61
|
+
// paths
|
62
|
+
$base_dir = realpath(__DIR__ . '/..');
|
63
|
+
$public_dir = realpath($base_dir . '/public');
|
64
|
+
|
65
|
+
// load conf
|
66
|
+
$cnf = Yaml::parse($base_dir . '/config/cnf.yml');
|
67
|
+
|
68
|
+
// expected urls
|
69
|
+
$url = 'http://' . $cnf['apache'][APPLICATION_ENV]['server_name'];
|
70
|
+
|
71
|
+
// load db settings
|
72
|
+
$db = (object) $cnf['dbs']['default'][APPLICATION_ENV];
|
73
|
+
|
74
|
+
// load mail settings
|
75
|
+
$mail = (object) $cnf['mail']['smtp'][APPLICATION_ENV];
|
76
|
+
|
77
|
+
return (object) array(
|
78
|
+
'cnf' => $cnf,
|
79
|
+
'db' => $db,
|
80
|
+
'mail' => $mail,
|
81
|
+
'base_path' => $base_dir,
|
82
|
+
'public_path' => $public_dir,
|
83
|
+
'url' => $url
|
84
|
+
);
|
85
|
+
|
86
|
+
}
|
87
|
+
|
88
|
+
public static function conf() { return self::cnf(); }
|
89
|
+
public static function config() { return self::cnf(); }
|
90
|
+
|
91
|
+
}
|
data/skel/skel.yml
CHANGED
@@ -25,8 +25,12 @@ project_types:
|
|
25
25
|
- lib/boris.php
|
26
26
|
- drupal-console
|
27
27
|
php:
|
28
|
+
bonethug_files:
|
29
|
+
- lib/Thug/Conf/Load.php
|
28
30
|
rails3:
|
31
|
+
bonethug_files:
|
29
32
|
rails4:
|
33
|
+
bonethug_files:
|
30
34
|
silverstripe3:
|
31
35
|
bonethug_files:
|
32
36
|
- lib/ss_loadconf.php
|
@@ -35,6 +39,8 @@ project_types:
|
|
35
39
|
- ss-console
|
36
40
|
- public/_ss_environment.php
|
37
41
|
sinatra:
|
42
|
+
bonethug_files:
|
38
43
|
exlcuded_paths:
|
39
44
|
- Gemfile
|
45
|
+
- bower.json
|
40
46
|
- composer.json
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bonethug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.80
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -452,7 +452,9 @@ files:
|
|
452
452
|
- skel/project_types/drupal8/public/sites/default/settings.php
|
453
453
|
- skel/project_types/drupal8/public/sites/default/staging.settings.php
|
454
454
|
- skel/project_types/php/.gitignore
|
455
|
+
- skel/project_types/php/bower.json
|
455
456
|
- skel/project_types/php/composer.json
|
457
|
+
- skel/project_types/php/lib/Thug/Conf/Load.php
|
456
458
|
- skel/project_types/rails3/Gemfile
|
457
459
|
- skel/project_types/rails3/README.md
|
458
460
|
- skel/project_types/rails4/Gemfile
|
@@ -557,7 +559,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
557
559
|
version: '0'
|
558
560
|
segments:
|
559
561
|
- 0
|
560
|
-
hash: -
|
562
|
+
hash: -1758899776465409101
|
561
563
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
562
564
|
none: false
|
563
565
|
requirements:
|
@@ -566,7 +568,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
566
568
|
version: '0'
|
567
569
|
segments:
|
568
570
|
- 0
|
569
|
-
hash: -
|
571
|
+
hash: -1758899776465409101
|
570
572
|
requirements: []
|
571
573
|
rubyforge_project:
|
572
574
|
rubygems_version: 1.8.23
|