40 lines
1.3 KiB
Ruby
40 lines
1.3 KiB
Ruby
desc "Create a central bare repository from the local repository."
|
|
task :init_repo do
|
|
repo_id = File.basename(Dir.getwd)
|
|
repo_path = "/srv/git/#{repo_id}.git"
|
|
post_receive = "/usr/bin/kgb-client --git-reflog - --conf /etc/kgb-client/kgb.conf --repository git --repo-id #{repo_id}"
|
|
|
|
commands = [
|
|
"mkdir #{repo_path}",
|
|
"cd #{repo_path}",
|
|
"git init --bare",
|
|
# For HTTP access such as gitweb
|
|
"mv hooks/post-update.sample hooks/post-update",
|
|
# For KGB to send commit notifications over IRC.
|
|
# This still requires additional server-side configuration, see
|
|
# http://my.agaric.com/agaric/node/11694
|
|
"echo #{post_receive} >> hooks/post-receive",
|
|
"chmod a+x hooks/post-receive"
|
|
].join(" && ")
|
|
sh "ssh git.agaric.com '#{commands}'"
|
|
sh "git remote add origin git.agaric.com:#{repo_path}"
|
|
sh "git push origin master"
|
|
end
|
|
|
|
desc "Add .gitignore file with basic project specific patterns."
|
|
task ".gitignore" do
|
|
open(".gitignore", "a") do |f|
|
|
f.puts ".sass-cache/"
|
|
f.puts ".vagrant/"
|
|
f.puts "build/"
|
|
f.puts "web/sites/default/settings.php"
|
|
f.puts "web/sites/default/files/"
|
|
end
|
|
end
|
|
|
|
desc "Add .gitattributes file with basic project specific patterns."
|
|
task ".gitattributes" do
|
|
open(".gitattributes", "a") do |f|
|
|
f.puts "etc export-ignore"
|
|
end
|
|
end
|