| |   |
| 25 | 25 | mode(:init){ |
| 26 | 26 | description <<-txt |
| 27 | 27 | initializes a git repository, and links to remote url if provided (for push/pull) |
| 28 | | also creates a .gitignore file |
| 28 | also creates .gitignore files |
| 29 | 29 | |
| 30 | 30 | txt |
| 31 | 31 | |
| … | … | |
| 33 | 33 | . git-rails init -m "message" -c git@gitorious.org:rur/mainline.git |
| 34 | 34 | txt |
| 35 | 35 | |
| 36 | | mixin :optional_remote, :option_message, :option_commit |
| 36 | mixin :optional_remote, :option_message, :option_commit, :option_include_database_yaml |
| 37 | 37 | |
| 38 | 38 | run{ |
| 39 | | GitRails::Command.run(:init, remote, message, commit) |
| 39 | GitRails::Command.run(:init, remote, message, commit, include_database_yaml) |
| 40 | 40 | } |
| 41 | 41 | } |
| 42 | 42 | |
| … | … | |
| 117 | 117 | } |
| 118 | 118 | end |
| 119 | 119 | |
| 120 | mixin :option_include_database_yaml do |
| 121 | option(:include_database_yaml, :d){ |
| 122 | optional |
| 123 | desc 'include database.yaml in the repository' |
| 124 | attr |
| 125 | } |
| 126 | end |
| 127 | |
| 120 | 128 | run{ help! } |
| 121 | 129 | } |
| 122 | 130 | |
| toggle raw diff |
--- a/bin/git-rails
+++ b/bin/git-rails
@@ -25,7 +25,7 @@ Main {
mode(:init){
description <<-txt
initializes a git repository, and links to remote url if provided (for push/pull)
- also creates a .gitignore file
+ also creates .gitignore files
txt
@@ -33,10 +33,10 @@ Main {
. git-rails init -m "message" -c git@gitorious.org:rur/mainline.git
txt
- mixin :optional_remote, :option_message, :option_commit
+ mixin :optional_remote, :option_message, :option_commit, :option_include_database_yaml
run{
- GitRails::Command.run(:init, remote, message, commit)
+ GitRails::Command.run(:init, remote, message, commit, include_database_yaml)
}
}
@@ -117,6 +117,14 @@ Main {
}
end
+ mixin :option_include_database_yaml do
+ option(:include_database_yaml, :d){
+ optional
+ desc 'include database.yaml in the repository'
+ attr
+ }
+ end
+
run{ help! }
}
|
| |   |
| 3 | 3 | module GitRails |
| 4 | 4 | module Commands |
| 5 | 5 | class Init < GitRails::Command |
| 6 | | def run(remote, message='', commit=false) |
| 6 | def run(remote, message='', commit=false, include_database_yaml=false) |
| 7 | 7 | ignore(".", ".DS_Store") |
| 8 | | ignore("config", "database.yml") |
| 9 | | ignore("db", ["*.db", "*.sqlite*"]) |
| 8 | ignore("db", "*.sqlite3") |
| 10 | 9 | ignore("log", "*.log") |
| 11 | 10 | ignore("tmp", "[^.]*") |
| 12 | 11 | ignore("public/cache", "[^.]*") |
| 13 | 12 | ignore("doc", ["api","app"]) |
| 14 | 13 | |
| 15 | | sqlite = File.new("config/database.sqlite.yml", "w") |
| 16 | | sqlite << "development:\n" |
| 17 | | sqlite << " adapter: sqlite3\n" |
| 18 | | sqlite << " dbfile: db/dev.db\n\n" |
| 19 | | sqlite << "test:\n" |
| 20 | | sqlite << " adapter: sqlite3\n" |
| 21 | | sqlite << " dbfile: db/test.db\n\n" |
| 22 | | sqlite << "production:\n" |
| 23 | | sqlite << " adapter: sqlite3\n" |
| 24 | | sqlite << " dbfile: db/prod.db\n" |
| 25 | | sqlite.close |
| 26 | | if File.exists?("config/database.yml") |
| 27 | | FileUtils.mv("config/database.yml", "config/database.mysql.yml") |
| 14 | unless include_database_yaml then |
| 15 | ignore("config", "database.yml") |
| 16 | end |
| 17 | |
| 18 | unless sqlite_by_default then |
| 19 | sqlite = File.new("config/database.sqlite.yml", "w") |
| 20 | sqlite << "development:\n" |
| 21 | sqlite << " adapter: sqlite3\n" |
| 22 | sqlite << " dbfile: db/development.sqlite3\n" |
| 23 | sqlite << " timeout: 5000\n\n" |
| 24 | sqlite << "test:\n" |
| 25 | sqlite << " adapter: sqlite3\n" |
| 26 | sqlite << " dbfile: db/test.sqlite3\n" |
| 27 | sqlite << " timeout: 5000\n\n" |
| 28 | sqlite << "production:\n" |
| 29 | sqlite << " adapter: sqlite3\n" |
| 30 | sqlite << " dbfile: db/production.sqlite3\n" |
| 31 | sqlite << " timeout: 5000\n\n" |
| 32 | sqlite.close |
| 33 | if File.exists?("config/database.yml") |
| 34 | FileUtils.mv("config/database.yml", "config/database.mysql.yml") |
| 35 | end |
| 36 | FileUtils.ln_sf("database.sqlite.yml", "config/database.yml") |
| 28 | 37 | end |
| 29 | | FileUtils.ln_sf("database.sqlite.yml", "config/database.yml") |
| 30 | 38 | |
| 31 | 39 | git = GitRails::Git.new |
| 32 | 40 | git.init |
| … | … | |
| 53 | 53 | puts " git push origin master\n" |
| 54 | 54 | end |
| 55 | 55 | end |
| 56 | |
| 56 | 57 | private |
| 57 | 58 | def ignore(path, entries) |
| 58 | 59 | file = path + "/.gitignore" |
| … | … | |
| 66 | 66 | handle.close |
| 67 | 67 | end |
| 68 | 68 | end |
| 69 | |
| 70 | def sqlite_by_default |
| 71 | begin |
| 72 | require 'config/boot.rb' |
| 73 | # TODO: Make this less nasty. |
| 74 | rails_version = Rails::VERSION::STRING.scan(/(\d)/).flatten.to_s.to_i |
| 75 | rails_version <= 202 |
| 76 | rescue LoadError |
| 77 | true |
| 78 | end |
| 79 | end |
| 69 | 80 | end |
| 70 | 81 | end |
| 71 | 82 | end |
| toggle raw diff |
--- a/lib/git-rails/commands/init.rb
+++ b/lib/git-rails/commands/init.rb
@@ -3,30 +3,38 @@ require 'fileutils'
module GitRails
module Commands
class Init < GitRails::Command
- def run(remote, message='', commit=false)
+ def run(remote, message='', commit=false, include_database_yaml=false)
ignore(".", ".DS_Store")
- ignore("config", "database.yml")
- ignore("db", ["*.db", "*.sqlite*"])
+ ignore("db", "*.sqlite3")
ignore("log", "*.log")
ignore("tmp", "[^.]*")
ignore("public/cache", "[^.]*")
ignore("doc", ["api","app"])
- sqlite = File.new("config/database.sqlite.yml", "w")
- sqlite << "development:\n"
- sqlite << " adapter: sqlite3\n"
- sqlite << " dbfile: db/dev.db\n\n"
- sqlite << "test:\n"
- sqlite << " adapter: sqlite3\n"
- sqlite << " dbfile: db/test.db\n\n"
- sqlite << "production:\n"
- sqlite << " adapter: sqlite3\n"
- sqlite << " dbfile: db/prod.db\n"
- sqlite.close
- if File.exists?("config/database.yml")
- FileUtils.mv("config/database.yml", "config/database.mysql.yml")
+ unless include_database_yaml then
+ ignore("config", "database.yml")
+ end
+
+ unless sqlite_by_default then
+ sqlite = File.new("config/database.sqlite.yml", "w")
+ sqlite << "development:\n"
+ sqlite << " adapter: sqlite3\n"
+ sqlite << " dbfile: db/development.sqlite3\n"
+ sqlite << " timeout: 5000\n\n"
+ sqlite << "test:\n"
+ sqlite << " adapter: sqlite3\n"
+ sqlite << " dbfile: db/test.sqlite3\n"
+ sqlite << " timeout: 5000\n\n"
+ sqlite << "production:\n"
+ sqlite << " adapter: sqlite3\n"
+ sqlite << " dbfile: db/production.sqlite3\n"
+ sqlite << " timeout: 5000\n\n"
+ sqlite.close
+ if File.exists?("config/database.yml")
+ FileUtils.mv("config/database.yml", "config/database.mysql.yml")
+ end
+ FileUtils.ln_sf("database.sqlite.yml", "config/database.yml")
end
- FileUtils.ln_sf("database.sqlite.yml", "config/database.yml")
git = GitRails::Git.new
git.init
@@ -45,6 +53,7 @@ module GitRails
puts " git push origin master\n"
end
end
+
private
def ignore(path, entries)
file = path + "/.gitignore"
@@ -57,6 +66,17 @@ module GitRails
handle.close
end
end
+
+ def sqlite_by_default
+ begin
+ require 'config/boot.rb'
+ # TODO: Make this less nasty.
+ rails_version = Rails::VERSION::STRING.scan(/(\d)/).flatten.to_s.to_i
+ rails_version <= 202
+ rescue LoadError
+ true
+ end
+ end
end
end
end |