class Git::Daily::Init

Public Instance Methods

help() click to toggle source
# File lib/git-daily/command/init.rb, line 12
def help
  "init\tInitialize git daily"
end
option() click to toggle source
# File lib/git-daily/command/init.rb, line 8
def option
  OptionParser.new
end
run() click to toggle source
# File lib/git-daily/command/init.rb, line 16
def run
  r = `git config --bool gitdaily.init`
  if r.chomp == "true"
    # initialized repo
    return nil
  end
  remotes = `git config --list`.split(/\n/).select {|a| a[/^remote\.([^\.]+)\.url/] }
  if remotes.empty?
    raise "don't have remote repository"
  end

  remotes.map! {|r| r[/^remote\.([^\.]+)\.url=(.*)/, 1] }

  selected_url = nil
  if remotes.size >= 2
    puts "Choose your remote url:"
    i = 0
    remotes.each do |v|
      puts "    #{i}: #{v}"
      i += 1
    end
    print "    > "
    n = gets.to_i
    selected_url = remotes[n]
  else
    selected_url = remotes[0]
  end

  r = `git config gitdaily.remote #{selected_url}`
  puts "Your remote is [#{selected_url}]"
  Git::Daily.application.remote = selected_url

  # master branch
  print "Name master branch [master]: "
  master = gets.strip
  if master.empty?
    master = "master"
  end
  `git config gitdaily.master #{master}`

  # develop branch
  print "Name develop branch [develop]: "
  develop = gets.strip
  if develop.empty?
    develop = "develop"
  end
  `git config gitdaily.develop #{develop}`

  unless Command.has_branch? develop
    remote = Command.remote
    if remote and Command.has_remote_branch?(remote, develop)
      `git checkout #{develop}`
    else
      `git checkout -b #{develop}`
      if remote
        `git push #{remote} #{develop}`
      end
    end
  end

  # initialized
  `git config gitdaily.init true`

  puts
  puts "git-daily completed to initialize."
  selected_url
end
usage() click to toggle source
# File lib/git-daily/command/init.rb, line 84
      def usage
        <<-EOS
Usage: git daily init
EOS
      end