class CommandLine::SubCommands::InitCommand

Public Class Methods

new(new_args, new_input_stream = STDIN) click to toggle source
Calls superclass method CommandLine::Command::new
# File lib/git/contest/command_line/sub_commands/init_command.rb, line 15
def initialize(new_args, new_input_stream = STDIN)
  super
end

Public Instance Methods

define_options() click to toggle source
# File lib/git/contest/command_line/sub_commands/init_command.rb, line 19
def define_options
  opt_parser.on "-d", "--defaults", "Use default branch naming conventions." do
    options[:defaults] = true
  end

  opt_parser.on "-f", "--force", "force setting of git-contest branches, even if already configured." do
    options[:force] = true
  end
end
run() click to toggle source
# File lib/git/contest/command_line/sub_commands/init_command.rb, line 34
def run
  if Git.contest_is_initialized && ! options[:force]
    puts "Already initialized for git-contest."
    puts "To force reinitialization, use: git contest init -f"
    exit 0
  end

  # run commands
  if ! Git.do_no_echo 'rev-parse --git-dir'
    Git.do 'init'
  end

  # init main
  if Git.contest_has_master_configured
    master_branch = Git.do 'config --get git.contest.branch.master'
  elsif options[:defaults]
    master_branch = 'master'
  else
    master_branch = terminal.ask('Master branch name: ') do |q|
      q.default = 'master'
    end
  end

  if options[:defaults]
    prefix = 'contest'
  else
    prefix = terminal.ask('Prefix of contest branch name:  ') do |q|
      q.default = 'contest'
    end
  end

  if Git.repo_is_headless
    Git.do 'symbolic-ref', 'HEAD', "\"refs/heads/#{master_branch}\""
      Git.do 'commit --allow-empty --quiet -m "Initial commit"'
  end

  # save config
  Git.do 'config', 'git.contest.branch.master', master_branch
  Git.do 'config', 'git.contest.branch.prefix', prefix
end
set_default_options() click to toggle source
# File lib/git/contest/command_line/sub_commands/init_command.rb, line 29
def set_default_options
  options[:defaults]  = false if options[:defaults].nil?
  options[:force]     = false if options[:defaults].nil?
end