ubuntu-machine 0.5.3.2.25
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/MIT-LICENSE +20 -0
- data/README +15 -0
- data/lib/capistrano/ext/ubuntu-machine.rb +30 -0
- data/lib/capistrano/ext/ubuntu-machine/apache.rb +118 -0
- data/lib/capistrano/ext/ubuntu-machine/aptitude.rb +99 -0
- data/lib/capistrano/ext/ubuntu-machine/extras.rb +39 -0
- data/lib/capistrano/ext/ubuntu-machine/ffmpeg.rb +43 -0
- data/lib/capistrano/ext/ubuntu-machine/gems.rb +41 -0
- data/lib/capistrano/ext/ubuntu-machine/git.rb +15 -0
- data/lib/capistrano/ext/ubuntu-machine/helpers.rb +36 -0
- data/lib/capistrano/ext/ubuntu-machine/iptables.rb +20 -0
- data/lib/capistrano/ext/ubuntu-machine/lmsensors.rb +26 -0
- data/lib/capistrano/ext/ubuntu-machine/machine.rb +50 -0
- data/lib/capistrano/ext/ubuntu-machine/mysql.rb +64 -0
- data/lib/capistrano/ext/ubuntu-machine/network.rb +42 -0
- data/lib/capistrano/ext/ubuntu-machine/ntp.rb +37 -0
- data/lib/capistrano/ext/ubuntu-machine/odbc.rb +44 -0
- data/lib/capistrano/ext/ubuntu-machine/php.rb +8 -0
- data/lib/capistrano/ext/ubuntu-machine/postfix.rb +7 -0
- data/lib/capistrano/ext/ubuntu-machine/rails3.rb +7 -0
- data/lib/capistrano/ext/ubuntu-machine/ruby.rb +86 -0
- data/lib/capistrano/ext/ubuntu-machine/ssh.rb +64 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/apache2.erb +7 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/deflate.conf.erb +3 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/freetds.conf.erb +8 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/iptables.erb +46 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/my.cnf.erb +3 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/new_db.erb +5 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/ntp.conf.erb +16 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/ntpdate.erb +13 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/odbc.ini.erb +8 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/odbcinst.ini.erb +7 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/passenger.conf.erb +2 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/passenger.load.erb +1 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/sources.jaunty.erb +55 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/sources.lucid.erb +22 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/sshd_config.erb +80 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/vhost.erb +17 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/vsftpd.conf.erb +158 -0
- data/lib/capistrano/ext/ubuntu-machine/templates/xsendfile.load.erb +1 -0
- data/lib/capistrano/ext/ubuntu-machine/tmpfs.rb +17 -0
- data/lib/capistrano/ext/ubuntu-machine/utils.rb +49 -0
- data/lib/capistrano/ext/ubuntu-machine/vsftpd.rb +63 -0
- metadata +130 -0
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 Thomas Balthazar
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
= View doc here :
|
2
|
+
http://suitmymind.github.com/ubuntu-machine
|
3
|
+
|
4
|
+
= Changelog here :
|
5
|
+
http://suitmymind.github.com/ubuntu-machine/#changelog
|
6
|
+
|
7
|
+
(Note: the above links belong to the official ubuntu-machine; not my fork.)
|
8
|
+
|
9
|
+
= Contributors :
|
10
|
+
- Joseph Glenn
|
11
|
+
- Ahume
|
12
|
+
- Tarik Alkasab
|
13
|
+
- Filip H.F. "FiXato" Slagter
|
14
|
+
- Wes "Narnach" Oldenbeuving
|
15
|
+
- Rachid Al Maach
|
@@ -0,0 +1,30 @@
|
|
1
|
+
unless Capistrano::Configuration.respond_to?(:instance)
|
2
|
+
abort "Requires Capistrano 2"
|
3
|
+
end
|
4
|
+
|
5
|
+
# Dir["#{File.dirname(__FILE__)}/ubuntu-machine/*.rb"].each { |lib|
|
6
|
+
# Capistrano::Configuration.instance.load {load(lib)}
|
7
|
+
# }
|
8
|
+
|
9
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/apache.rb")}
|
10
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/aptitude.rb")}
|
11
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/extras.rb")}
|
12
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ffmpeg.rb")}
|
13
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/gems.rb")}
|
14
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/git.rb")}
|
15
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/odbc.rb")}
|
16
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/helpers.rb")}
|
17
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/iptables.rb")}
|
18
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/lmsensors.rb")}
|
19
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/machine.rb")}
|
20
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/mysql.rb")}
|
21
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/network.rb")}
|
22
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ntp.rb")}
|
23
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/php.rb")}
|
24
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/postfix.rb")}
|
25
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ruby.rb")}
|
26
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/ssh.rb")}
|
27
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/tmpfs.rb")}
|
28
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/utils.rb")}
|
29
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/vsftpd.rb")}
|
30
|
+
Capistrano::Configuration.instance.load {load("#{File.dirname(__FILE__)}/ubuntu-machine/rails3.rb")}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
namespace :apache do
|
2
|
+
desc "Install Apache"
|
3
|
+
task :install, :roles => :web do
|
4
|
+
sudo "apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert -y"
|
5
|
+
|
6
|
+
run "cat /etc/apache2/apache2.conf > ~/apache2.conf.tmp"
|
7
|
+
put render("apache2", binding), "apache2.append.conf.tmp"
|
8
|
+
run "cat apache2.append.conf.tmp >> ~/apache2.conf.tmp"
|
9
|
+
sudo "mv ~/apache2.conf.tmp /etc/apache2/apache2.conf"
|
10
|
+
run "rm apache2.append.conf.tmp"
|
11
|
+
restart
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Restarts Apache webserver"
|
15
|
+
task :restart, :roles => :web do
|
16
|
+
sudo "/etc/init.d/apache2 restart"
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Starts Apache webserver"
|
20
|
+
task :start, :roles => :web do
|
21
|
+
sudo "/etc/init.d/apache2 start"
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "Stops Apache webserver"
|
25
|
+
task :stop, :roles => :web do
|
26
|
+
sudo "/etc/init.d/apache2 stop"
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "Reload Apache webserver"
|
30
|
+
task :reload, :roles => :web do
|
31
|
+
sudo "/etc/init.d/apache2 reload"
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "Force reload Apache webserver"
|
35
|
+
task :force_reload, :roles => :web do
|
36
|
+
sudo "/etc/init.d/apache2 force-reload"
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "List enabled Apache sites"
|
40
|
+
task :enabled_sites, :roles => :web do
|
41
|
+
run "ls /etc/apache2/sites-enabled"
|
42
|
+
end
|
43
|
+
|
44
|
+
desc "List available Apache sites"
|
45
|
+
task :available_sites, :roles => :web do
|
46
|
+
run "ls /etc/apache2/sites-available"
|
47
|
+
end
|
48
|
+
|
49
|
+
desc "List enabled Apache modules"
|
50
|
+
task :enabled_modules, :roles => :web do
|
51
|
+
run "ls /etc/apache2/mods-enabled"
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "List available Apache modules"
|
55
|
+
task :available_modules, :roles => :web do
|
56
|
+
run "ls /etc/apache2/mods-available"
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Disable Apache site"
|
60
|
+
task :disable_site, :roles => :web do
|
61
|
+
site = Capistrano::CLI.ui.ask("Which site should we disable: ")
|
62
|
+
sudo "sudo a2dissite #{site}"
|
63
|
+
reload
|
64
|
+
end
|
65
|
+
|
66
|
+
desc "Enable Apache site"
|
67
|
+
task :enable_site, :roles => :web do
|
68
|
+
site = Capistrano::CLI.ui.ask("Which site should we enable: ")
|
69
|
+
sudo "sudo a2ensite #{site}"
|
70
|
+
reload
|
71
|
+
end
|
72
|
+
|
73
|
+
desc "Disable Apache module"
|
74
|
+
task :disable_module, :roles => :web do
|
75
|
+
mod = Capistrano::CLI.ui.ask("Which module should we disable: ")
|
76
|
+
sudo "sudo a2dismod #{mod}"
|
77
|
+
force_reload
|
78
|
+
end
|
79
|
+
|
80
|
+
desc "Enable Apache module"
|
81
|
+
task :enable_module, :roles => :web do
|
82
|
+
mod = Capistrano::CLI.ui.ask("Which module should we enable: ")
|
83
|
+
sudo "sudo a2enmod #{mod}"
|
84
|
+
force_reload
|
85
|
+
end
|
86
|
+
|
87
|
+
desc "Create a new website"
|
88
|
+
task :create_website, :roles => :web do
|
89
|
+
server_admin = Capistrano::CLI.ui.ask("Server admin (#{default_server_admin}) if blank : ")
|
90
|
+
server_admin = default_server_admin if server_admin.empty?
|
91
|
+
server_name = Capistrano::CLI.ui.ask("Server name : ")
|
92
|
+
server_alias = Capistrano::CLI.ui.ask("Server alias : ")
|
93
|
+
directory_index = Capistrano::CLI.ui.ask("Directory index (#{default_directory_index}) if blank : ")
|
94
|
+
directory_index = default_directory_index if directory_index.empty?
|
95
|
+
|
96
|
+
# Website skeleton
|
97
|
+
%w{backup cap cgi-bin logs private public tmp}.each { |d|
|
98
|
+
run "mkdir -p /home/#{user}/websites/#{server_name}/#{d}"
|
99
|
+
}
|
100
|
+
|
101
|
+
put render("vhost", binding), server_name
|
102
|
+
sudo "mv #{server_name} /etc/apache2/sites-available/#{server_name}"
|
103
|
+
sudo "sudo a2ensite #{server_name}"
|
104
|
+
reload
|
105
|
+
end
|
106
|
+
|
107
|
+
desc "Delete a website (! delete all file and folders)"
|
108
|
+
task :delete_website, :roles => :web do
|
109
|
+
server_name = Capistrano::CLI.ui.ask("Server name you want to delete : ")
|
110
|
+
sure = Capistrano::CLI.ui.ask("Are you sure you want to delete #{server_name} and all its files? (y/n) : ")
|
111
|
+
if sure=="y"
|
112
|
+
sudo "sudo a2dissite #{server_name}"
|
113
|
+
sudo "rm /etc/apache2/sites-available/#{server_name}"
|
114
|
+
sudo "rm -Rf /home/#{user}/websites/#{server_name}"
|
115
|
+
reload
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
namespace :aptitude do
|
2
|
+
desc <<-DESC
|
3
|
+
Updates your software package list. This will not "upgrade" any of your \
|
4
|
+
installed software.
|
5
|
+
|
6
|
+
See "Update" section on \
|
7
|
+
http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
|
8
|
+
DESC
|
9
|
+
task :update, :roles => :app do
|
10
|
+
sudo "apt-get update"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Alias for 'aptitude:safe_upgrade'"
|
14
|
+
task :upgrade, :roles => :app do
|
15
|
+
safe_upgrade
|
16
|
+
end
|
17
|
+
|
18
|
+
desc <<-DESC
|
19
|
+
Upgrades your installed software packages.
|
20
|
+
|
21
|
+
From the aptitude man pages:
|
22
|
+
|
23
|
+
This command will upgrade as many packages as it can upgrade without \
|
24
|
+
removing existing packages or installing new ones.
|
25
|
+
|
26
|
+
It is sometimes necessary to remove or install one package in order to \
|
27
|
+
upgrade another; this command is not able to upgrade packages in such \
|
28
|
+
situations. Use the full-upgrade to upgrade those packages as well.
|
29
|
+
|
30
|
+
See "Upgrade" section on \
|
31
|
+
http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
|
32
|
+
DESC
|
33
|
+
task :safe_upgrade, :roles => :app do
|
34
|
+
|
35
|
+
# to prevent interactive mode to block the install script
|
36
|
+
sudo 'aptitude hold console-setup -y'
|
37
|
+
|
38
|
+
# By default, OVH replace the original /etc/issue. The safe_upgrade will then ask \
|
39
|
+
# if it must overwrite this file, since it has been modified by OVH. \
|
40
|
+
# data =~ /^\*\*\*\sissue/ looks for the interactive prompt to enable you to answer
|
41
|
+
sudo_and_watch_prompt("aptitude safe-upgrade -y", /^\*\*\*\sissue/)
|
42
|
+
end
|
43
|
+
|
44
|
+
desc <<-DESC
|
45
|
+
Upgrades your installed software packages.
|
46
|
+
|
47
|
+
From the aptitude man pages:
|
48
|
+
|
49
|
+
Like safe-upgrade, this command will attempt to upgrade packages, but it is \
|
50
|
+
more aggressive about solving dependency problems: it will install and \
|
51
|
+
remove packages until all dependencies are satisfied. Because of the nature \
|
52
|
+
of this command, it is possible that it will do undesirable things, and so \
|
53
|
+
you should be careful when using it.
|
54
|
+
|
55
|
+
See "Upgrade" section on \
|
56
|
+
http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
|
57
|
+
DESC
|
58
|
+
task :full_upgrade, :roles => :app do
|
59
|
+
sudo "aptitude full-upgrade -y"
|
60
|
+
end
|
61
|
+
|
62
|
+
desc <<-DESC
|
63
|
+
Installs a software package via aptitude. You will be prompted for the \
|
64
|
+
package name after running this commmand.
|
65
|
+
DESC
|
66
|
+
task :install, :roles => :app do
|
67
|
+
package = Capistrano::CLI.ui.ask("Which package should we install: ")
|
68
|
+
sudo "apt-get install #{package}"
|
69
|
+
end
|
70
|
+
|
71
|
+
desc <<-DESC
|
72
|
+
Uninstalls a software package via aptitude. You will be prompted for the \
|
73
|
+
package name after running this commmand.
|
74
|
+
DESC
|
75
|
+
task :uninstall, :roles => :app do
|
76
|
+
package = Capistrano::CLI.ui.ask("Which package should we uninstall: ")
|
77
|
+
sudo "apt-get remove #{package}"
|
78
|
+
end
|
79
|
+
|
80
|
+
desc <<-DESC
|
81
|
+
Updates software packages and creates "a solid base for the 'meat' of the \
|
82
|
+
server". This task should be run only once when you are first setting up your \
|
83
|
+
new slice.
|
84
|
+
|
85
|
+
See "Update", "locales", "Upgrade" and "build essentials" sections on \
|
86
|
+
http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-2
|
87
|
+
DESC
|
88
|
+
task :setup, :roles => :app do
|
89
|
+
put render("sources.lucid", binding), "sources.list"
|
90
|
+
sudo "mv sources.list /etc/apt/sources.list"
|
91
|
+
sudo "apt-get update"
|
92
|
+
update
|
93
|
+
sudo "locale-gen en_GB.UTF-8"
|
94
|
+
sudo "/usr/sbin/update-locale LANG=en_GB.UTF-8"
|
95
|
+
safe_upgrade
|
96
|
+
full_upgrade
|
97
|
+
sudo "apt-get install -y build-essential"
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
namespace :extras do
|
2
|
+
desc "Installs extra utils: curl, lynx, mailutils, munin, imagemagick"
|
3
|
+
task :install_all do
|
4
|
+
install_curl
|
5
|
+
install_lynx
|
6
|
+
install_mailutils
|
7
|
+
install_munin
|
8
|
+
install_imagemagick
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "Installs extra util curl"
|
12
|
+
task :install_curl do
|
13
|
+
sudo "aptitude install -y curl"
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Installs extra util lynx"
|
17
|
+
task :install_lynx do
|
18
|
+
sudo "aptitude install -y lynx"
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "Installs extra util mailutils"
|
22
|
+
task :install_mailutils do
|
23
|
+
sudo "aptitude install -y mailutils"
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "Installs extra util munin"
|
27
|
+
task :install_munin do
|
28
|
+
sudo "aptitude install -y munin"
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "Installs extra util imagemagick"
|
32
|
+
task :install_imagemagick do
|
33
|
+
sudo "apt-get install libmagick9-dev librmagick-ruby1.8 librmagick-ruby libmagickcore-dev msttcorefonts imagemagick libmagickwand-dev"
|
34
|
+
sudo "ldconfig"
|
35
|
+
sudo "gem install rmagick"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
@@ -0,0 +1,43 @@
|
|
1
|
+
namespace :ffmpeg do
|
2
|
+
# FFmpeg install has been tested in June 2009 as working with these settings:
|
3
|
+
# set :x264_commit_hash, '2c597171d5126c3ccae7546f6699d6c4d8ec5e3a'
|
4
|
+
# set :ffmpeg_commit_hash, 'cc32213534573a127e01a0e2ed4962eb4b1939fd'
|
5
|
+
# set :libswscale_commit_hash, '0fa4ae3fc08f75277e2c1f225561053243f18576'
|
6
|
+
_cset :x264_commit_hash, ''
|
7
|
+
_cset :ffmpeg_commit_hash, ''
|
8
|
+
_cset :libswscale_commit_hash, ''
|
9
|
+
|
10
|
+
desc 'Install FFmpeg dependencies'
|
11
|
+
task :install_dependencies, :roles => :app do
|
12
|
+
#TODO: Ensure that the multiverse repositories/sources are available and being used by aptitude \
|
13
|
+
# otherwise add them to /etc/apt/sources.list since they are needed for libraries such as libmp3lame-dev
|
14
|
+
sudo "aptitude install -y ccache checkinstall fakeroot liba52-0.7.4-dev liba52-dev libfaac-dev libfaad-dev libfreetype6-dev libgpac-dev libjpeg62-dev liblame-dev liblame0 libmp3lame-dev libogg-dev libpng12-dev libtheora-dev libtiff4-dev libvorbis-dev libxvidcore4-dev"
|
15
|
+
run "wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.1.tar.gz -O yasm-0.7.1.tar.gz && tar -xzf yasm-0.7.1.tar.gz && cd yasm-0.7.1 && ./configure && make && sudo checkinstall -y"
|
16
|
+
sudo "ldconfig"
|
17
|
+
run "if test -x x264; then cd x264 && git checkout master && git pull; else git clone git://git.videolan.org/x264.git; fi"
|
18
|
+
if x264_commit_hash.size > 0
|
19
|
+
run "cd x264 && git checkout #{x264_commit_hash}"
|
20
|
+
end
|
21
|
+
run "cd x264 && ./configure --enable-pthread --enable-mp4-output --enable-shared --enable-pic --extra-asflags='-fPIC' --extra-cflags='-march=k8 -mtune=k8 -pipe -fomit-frame-pointer' && make && sudo checkinstall -y"
|
22
|
+
sudo "ldconfig"
|
23
|
+
run "wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2 -O amrnb-7.0.0.2.tar.bz2 && tar -xjf amrnb-7.0.0.2.tar.bz2 && cd amrnb-7.0.0.2 && ./configure && make && sudo make install"
|
24
|
+
run "wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2 -O amrwb-7.0.0.3.tar.bz2 && tar -xjf amrwb-7.0.0.3.tar.bz2 && cd amrwb-7.0.0.3 && ./configure && make && sudo make install"
|
25
|
+
sudo "ldconfig"
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'Install FFmpeg'
|
29
|
+
task :install, :roles => :app do
|
30
|
+
install_dependencies
|
31
|
+
run "if test -x ffmpeg; then cd ffmpeg && git checkout master && git pull; else git clone git://git.ffmpeg.org/ffmpeg; fi"
|
32
|
+
run "if test -x ffmpeg/libswscale; then cd ffmpeg/libswscale && git checkout master && git pull; else cd ffmpeg && git clone git://git.ffmpeg.org/libswscale; fi"
|
33
|
+
if ffmpeg_commit_hash.size > 0
|
34
|
+
run "cd ffmpeg && git checkout #{ffmpeg_commit_hash}"
|
35
|
+
end
|
36
|
+
if libswscale_commit_hash.size > 0
|
37
|
+
run "cd ffmpeg/libswscale && git checkout #{libswscale_commit_hash}"
|
38
|
+
end
|
39
|
+
sudo "ldconfig"
|
40
|
+
run "cd ffmpeg && ./configure --enable-gpl --enable-shared --enable-nonfree --enable-libfaadbin --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-pthreads --enable-libxvid --disable-liba52 --disable-libvorbis --disable-libtheora --disable-libgsm --disable-postproc --disable-swscale --disable-debug --cc='ccache gcc' && make && sudo checkinstall -y"
|
41
|
+
sudo "ldconfig"
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
namespace :gems do
|
2
|
+
desc "Install RubyGems"
|
3
|
+
task :install_rubygems, :roles => :app do
|
4
|
+
sudo "apt-get install wget"
|
5
|
+
|
6
|
+
run "wget http://production.cf.rubygems.org/rubygems/rubygems-#{rubygem_version}.tgz"
|
7
|
+
run "tar xvzf rubygems-#{rubygem_version}.tgz"
|
8
|
+
run "cd rubygems-#{rubygem_version} && sudo ruby setup.rb"
|
9
|
+
sudo "ln -s /usr/bin/gem1.8 /usr/bin/gem"
|
10
|
+
sudo "gem update"
|
11
|
+
sudo "gem update --system"
|
12
|
+
run "rm -Rf rubygems-#{rubygem_version}*"
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "List gems on remote server"
|
16
|
+
task :list, :roles => :app do
|
17
|
+
stream "gem list"
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Update gems on remote server"
|
21
|
+
task :update, :roles => :app do
|
22
|
+
sudo "gem update"
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "Update gem system on remote server"
|
26
|
+
task :update_system, :roles => :app do
|
27
|
+
sudo "gem update --system"
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Install a gem on the remote server"
|
31
|
+
task :install, :roles => :app do
|
32
|
+
name = Capistrano::CLI.ui.ask("Which gem should we install: ")
|
33
|
+
sudo "gem install #{name}"
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Uninstall a gem on the remote server"
|
37
|
+
task :uninstall, :roles => :app do
|
38
|
+
name = Capistrano::CLI.ui.ask("Which gem should we uninstall: ")
|
39
|
+
sudo "gem uninstall #{name}"
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
namespace :git do
|
2
|
+
desc "Install git"
|
3
|
+
task :install, :roles => :app do
|
4
|
+
sudo "sudo apt-get build-dep git-core -y"
|
5
|
+
run "wget http://kernel.org/pub/software/scm/git/#{git_version}.tar.gz"
|
6
|
+
run "tar xvzf #{git_version}.tar.gz"
|
7
|
+
run "cd #{git_version}"
|
8
|
+
run "cd #{git_version} && ./configure"
|
9
|
+
run "cd #{git_version} && make"
|
10
|
+
run "cd #{git_version} && sudo make install"
|
11
|
+
run "rm #{git_version}.tar.gz"
|
12
|
+
run "rm -Rf #{git_version}"
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
# render a template
|
4
|
+
def render(file, binding)
|
5
|
+
template = File.read("#{File.dirname(__FILE__)}/templates/#{file}.erb")
|
6
|
+
result = ERB.new(template).result(binding)
|
7
|
+
end
|
8
|
+
|
9
|
+
# allows to sudo a command which require the user input via the prompt
|
10
|
+
def sudo_and_watch_prompt(cmd, regex_to_watch)
|
11
|
+
sudo cmd, :pty => true do |ch, stream, data|
|
12
|
+
watch_prompt(ch, stream, data, regex_to_watch)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# allows to run a command which require the user input via the prompt
|
17
|
+
def run_and_watch_prompt(cmd, regex_to_watch)
|
18
|
+
run cmd, :pty => true do |ch, stream, data|
|
19
|
+
watch_prompt(ch, stream, data, regex_to_watch)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# utility method called by sudo_and_watch_prompt and run_and_watch_prompt
|
24
|
+
def watch_prompt(ch, stream, data, regex_to_watch)
|
25
|
+
|
26
|
+
# the regex can be an array or a single regex -> we force it to always be an array with [*xx]
|
27
|
+
if [*regex_to_watch].find { |regex| data =~ regex}
|
28
|
+
# prompt, and then send the response to the remote process
|
29
|
+
ch.send_data(Capistrano::CLI.password_prompt(data) + "\n")
|
30
|
+
else
|
31
|
+
# use the default handler for all other text
|
32
|
+
Capistrano::Configuration.default_io_proc.call(ch, stream, data)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|