Commit a55f0d12247e5f14b6f1e056565003bd23ea9da0

psq's suggestions

* only create and symlink a custom database.yml for sqlite if using an older rails version. (< 2.0.2)
* command line option to include database.yml in the repository.

Commit diff

bin/git-rails

 
2525 mode(:init){
2626 description <<-txt
2727 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
2929
3030 txt
3131
3333 . git-rails init -m "message" -c git@gitorious.org:rur/mainline.git
3434 txt
3535
36 mixin :optional_remote, :option_message, :option_commit
36 mixin :optional_remote, :option_message, :option_commit, :option_include_database_yaml
3737
3838 run{
39 GitRails::Command.run(:init, remote, message, commit)
39 GitRails::Command.run(:init, remote, message, commit, include_database_yaml)
4040 }
4141 }
4242
117117 }
118118 end
119119
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
120128 run{ help! }
121129}
122130
toggle raw diff

lib/git-rails/commands/init.rb

 
33module GitRails
44 module Commands
55 class Init < GitRails::Command
6 def run(remote, message='', commit=false)
6 def run(remote, message='', commit=false, include_database_yaml=false)
77 ignore(".", ".DS_Store")
8 ignore("config", "database.yml")
9 ignore("db", ["*.db", "*.sqlite*"])
8 ignore("db", "*.sqlite3")
109 ignore("log", "*.log")
1110 ignore("tmp", "[^.]*")
1211 ignore("public/cache", "[^.]*")
1312 ignore("doc", ["api","app"])
1413
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")
2837 end
29 FileUtils.ln_sf("database.sqlite.yml", "config/database.yml")
3038
3139 git = GitRails::Git.new
3240 git.init
5353 puts " git push origin master\n"
5454 end
5555 end
56
5657 private
5758 def ignore(path, entries)
5859 file = path + "/.gitignore"
6666 handle.close
6767 end
6868 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
6980 end
7081 end
7182end
toggle raw diff