lib/power_stencil/project/create.rb in power_stencil-0.6.3 vs lib/power_stencil/project/create.rb in power_stencil-0.7.0

- old
+ new

@@ -3,26 +3,47 @@ module PowerStencil module Project module Create + INITIAL_REPOSITORY_COMMIT_MESSAGE = 'Initial commit for project "%s".' + include Climatic::Proxy def create_project_tree(path, config_directory_name = PowerStencil.config[:default_config_directory_name]) path = File.expand_path path config_path = File.join path, config_directory_name if Dir.exists? config_path raise PowerStencil::Error, "The directory '#{path}' already contains a PowerStencil project !" unless config[:force] end logger.info "Creating project in '#{path}'..." - render_project_template_in(path) + render_project_template_in path + initialize_git_repository path end private + def initialize_git_repository(repo_path) + if config[:'no-git'] + puts_and_logs 'Do not initialize project git repository as per config request.', logs_as: :debug + return + end + if Dir.exists? File.join(repo_path, '.git') + puts_and_logs 'Git repository already exists. Skipping.', logs_as: :debug, check_verbose: false + return + end + puts_and_logs 'Initializing git repository...', logs_as: :debug + git = ::Git.init repo_path + logger.debug 'Adding all files.' + git.add repo_path + logger.debug 'Committing initial status' + commit_msg = INITIAL_REPOSITORY_COMMIT_MESSAGE % [File.basename(repo_path)] + git.commit_all commit_msg + end + def render_project_template_in(new_project_config_path) engine = PowerStencil::Engine::InitEngine.new - engine.render_source PowerStencil::Project::Paths.project_system_template_path, new_project_config_path + engine.render_source PowerStencil::Project::Paths.project_system_template_template_path, new_project_config_path end end end