Class: Rocket_starter_core
- Inherits:
-
Object
- Object
- Rocket_starter_core
- Defined in:
- lib/rocketstarter/rocket_starter_core.rb
Instance Method Summary collapse
- #create_basic_dirs_and_project ⇒ Object
- #create_databases ⇒ Object
- #git_commit(message) ⇒ Object
- #git_ignore ⇒ Object
- #git_ignore_for_netbeans ⇒ Object
- #git_project_dirs_and_init ⇒ Object
-
#initialize(frontend) ⇒ Rocket_starter_core
constructor
A new instance of Rocket_starter_core.
- #overwrite_database_password ⇒ Object
-
#run ⇒ Object
for subversion.
- #setup_plugins ⇒ Object
- #subversion_add_all ⇒ Object
- #subversion_basic_dirs ⇒ Object
- #subversion_checkout ⇒ Object
- #subversion_commit(message) ⇒ Object
- #subversion_import ⇒ Object
- #subversion_propset ⇒ Object
- #subversion_propset_for_netbeans ⇒ Object
- #text_insert_to(filename) ⇒ Object
- #trim_project ⇒ Object
Constructor Details
#initialize(frontend) ⇒ Rocket_starter_core
Returns a new instance of Rocket_starter_core.
5 6 7 8 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 5 def initialize(frontend) @options = frontend @logfile = File::new( @options[:log_file], "a" ) if @options[:logging] end |
Instance Method Details
#create_basic_dirs_and_project ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 161 def create_basic_dirs_and_project exec_shell_command "pwd" case @options[:scmtype] when "svn" exec_shell_command "svn mkdir rails docs" managed_chdir("#{@scm_root}/rails") rails_option = " -c" when "git" exec_shell_command "mkdir rails docs" managed_chdir("#{@scm_root}/rails") rails_option = "" else exec_shell_command "mkdir rails docs" managed_chdir("#{@scm_root}/rails") rails_option = "" end rails_option << " --database=" + @options[:database] unless "" == @options[:database] exec_shell_command "rails #{@options[:project]}" + rails_option notice "Rails Project Folder Successfully Created." end |
#create_databases ⇒ Object
277 278 279 280 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 277 def create_databases notice "Create all databases" exec_shell_command "rake db:create:all" end |
#git_commit(message) ⇒ Object
116 117 118 119 120 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 116 def git_commit() notice "Commiting to local-git for " + exec_shell_command "git add ." exec_shell_command "git commit -a -m '#{}'" end |
#git_ignore ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 122 def git_ignore notice "Configuring .gitignore files." exec_shell_command "echo '*.log' >> log/.gitignore" exec_shell_command "echo '*.pid' >> log/.gitignore" exec_shell_command "echo '*' >> tmp/.gitignore" exec_shell_command "echo '*.db' >> db/.gitignore" exec_shell_command "echo '*.sqlite' >> db/.gitignore" exec_shell_command "echo '*.sqlite3' >> db/.gitignore" exec_shell_command "echo 'schema.rb' >> db/.gitignore" exec_shell_command "echo 'schema.sql' >> db/.gitignore" exec_shell_command "echo 'database.yml' >> config/.gitignore" if @options[:ignoredatabase] end |
#git_ignore_for_netbeans ⇒ Object
136 137 138 139 140 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 136 def git_ignore_for_netbeans notice "Setting .gitignore file for netbeans." exec_shell_command "mkdir nbproject" exec_shell_command "echo '*' >> nbproject/.gitignore" end |
#git_project_dirs_and_init ⇒ Object
109 110 111 112 113 114 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 109 def git_project_dirs_and_init notice "Create project directory and initialize for git" exec_shell_command "mkdir #{@options[:project]}" managed_chdir("#{@scm_root}") exec_shell_command "git init" end |
#overwrite_database_password ⇒ Object
266 267 268 269 270 271 272 273 274 275 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 266 def overwrite_database_password notice "Over write password about config/database.yml" text_insert_to("config/database.yml") do |file, line| if /password:/ =~ line file.puts line + " " + @options[:dbpassword] else file.puts line end end end |
#run ⇒ Object
for subversion
cd current_dir rocket_starter projname scmuri
mkdir projname cd projname mkdir trunk branches tags svn import . scmuri [–passowrd=scmpass] -m “create basic directories” rmdir trunk branches tags svn checkout scmuri/trunk . [–passowrd=scmpass]
svn mkdir docs rails cd rails rails projname -c [–database=name] svn commit . [–passowrd=scmpass] -m “generate rails app” cd projname
trim app
set svn::ignore
for git
cd current_dir rocket_starter projname scmuri
mkdir projname cd projname git init mkdir docs rails cd rails rails projname -g [–database=name] git add . git commit -m “generate rails app” cd projname
trim app
put gitignore files
57 58 59 60 61 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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 57 def run notice "Rocket_starter: Starting at " + Time.now.strftime("%Y/%m/%d %H:%M:%S") get_current_directory set_scm_password if "svn" == @options[:scmtype] and not @options[:scmuri].empty? subversion_basic_dirs subversion_import subversion_checkout create_basic_dirs_and_project subversion_commit "generate rails app" trim_project subversion_commit "delete not use files" subversion_propset subversion_propset_for_netbeans unless @options[:skip_netbeans] subversion_commit "set svn:ignore" unless @options[:skip_plugins] or @options[:pluginlist_path].empty? setup_plugins subversion_add_all unless @options[:skip_commit_for_plugins] subversion_commit "install rails plugins" end unless @options[:dbpassword].empty? overwrite_database_password if not @options[:dbpassword].empty? and "mysql" == @options["database"] subversion_commit "over write password about config/database.yml" end create_databases if @options[:createdb] elsif "git" == @options[:scmtype] git_project_dirs_and_init create_basic_dirs_and_project git_commit "generate rails app" trim_project git_commit "delete not use files" git_ignore git_ignore_for_netbeans unless @options[:skip_netbeans] git_commit "put .gitignore files" unless @options[:skip_plugins] or @options[:pluginlist_path].empty? setup_plugins git_commit "install rails plugins" end unless @options[:dbpassword].empty? overwrite_database_password if not @options[:dbpassword].empty? and "mysql" == @options["database"] git_commit "over write password about config/database.yml" end create_databases if @options[:createdb] else Rocket_starter_options::error_with_show_usage "irigal SCM type or scmuri is empty." end notice "Rocket_starter: Complete at " + Time.now.strftime("%Y/%m/%d %H:%M:%S") @logfile.close if @logfile end |
#setup_plugins ⇒ Object
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 233 def setup_plugins begin plugin_option = "" plugin_option << " -x " if @options[:external] File.open(@options[:pluginlist_path]) do |plugin_file| plugin_file.each do |line| next if /^#.*/ =~ line or line.chomp.empty? if @options[:rapt] exec_shell_command "rapt install #{plugin_option} #{line}" else exec_shell_command "script/plugin install #{plugin_option} #{line}" end end end rescue notice "Can not open #{@options[:pluginlist_path]}" Rocket_starter_options::show_usage end end |
#subversion_add_all ⇒ Object
187 188 189 190 191 192 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 187 def subversion_add_all notice "Add all files and directories to the repository from svn status" `svn status`.split("\n").each do |line| exec_shell_command "svn add #{line.slice(/\?\s+(.+)/, 1)}" end end |
#subversion_basic_dirs ⇒ Object
142 143 144 145 146 147 148 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 142 def subversion_basic_dirs notice "Create basic directories." exec_shell_command "mkdir #{@options[:project]}" managed_chdir("#{@scm_root}") exec_shell_command "mkdir trunk branches tags" exec_shell_command "pwd" end |
#subversion_checkout ⇒ Object
156 157 158 159 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 156 def subversion_checkout notice "Checking out trunk of the project from subversion." exec_shell_command "svn checkout #{@options[:scmuri]}/trunk . #{@scm_password}" end |
#subversion_commit(message) ⇒ Object
182 183 184 185 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 182 def subversion_commit() notice "Commiting to subversion for " + exec_shell_command "svn commit #{@scm_root} #{@scm_password} -m '#{}'" end |
#subversion_import ⇒ Object
150 151 152 153 154 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 150 def subversion_import notice "Importing project to subvserion." exec_shell_command "svn import . #{@options[:scmuri]} #{@scm_password} -m \"Initial import\"" exec_shell_command "rmdir trunk branches tags" end |
#subversion_propset ⇒ Object
213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 213 def subversion_propset notice "Configuring svn:ignore properties." exec_shell_command "svn propset svn:ignore \"*.log\n*.pid\" log/" exec_shell_command "svn propset svn:ignore \"*\" tmp/" exec_shell_command "svn propset svn:ignore \"*.db\n*.sqlite\n*.sqlite3\nschema.rb\nschema.sql\" db/" if @options[:ignoredatabase] exec_shell_command "cp config/database.yml.sample config/database.yml" exec_shell_command "svn propset svn:ignore \"database.yml\" config/" end exec_shell_command "svn update . #{@scm_password}" end |
#subversion_propset_for_netbeans ⇒ Object
225 226 227 228 229 230 231 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 225 def subversion_propset_for_netbeans notice "Setting svn:ignore for netbeans." exec_shell_command "mkdir nbproject" exec_shell_command "svn propset svn:ignore \"*\" nbproject/" exec_shell_command "svn update nbproject/ #{@scm_password}" exec_shell_command "rmdir nbproject" end |
#text_insert_to(filename) ⇒ Object
254 255 256 257 258 259 260 261 262 263 264 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 254 def text_insert_to(filename) current_model_contents = [] File::open(filename, "r") do |file| current_model_contents = file.readlines end File::open(filename, "w") do |file| current_model_contents.each do |line| yield(file, line) end end end |
#trim_project ⇒ Object
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
# File 'lib/rocketstarter/rocket_starter_core.rb', line 194 def trim_project notice "Triming initial project." exec_shell_command "pwd" managed_chdir("#{@scm_root}/rails/#{@options[:project]}") exec_shell_command "svn mv config/database.yml config/database.yml.sample" if @options[:ignoredatabase] case @options[:scmtype] when "svn" exec_shell_command "svn rm doc/README_FOR_APP" exec_shell_command "svn rm README" exec_shell_command "svn rm log/*" exec_shell_command "svn rm tmp/*" when "git" exec_shell_command "rm doc/README_FOR_APP" exec_shell_command "rm README" exec_shell_command "rm -rf log/*" exec_shell_command "rm -rf tmp/*" end end |