lib/gdk/command/switch.rb (29 lines of code) (raw):
# frozen_string_literal: true
require 'time'
module GDK
module Command
# Switches to a branch in the monolith and sets up the environment for it.
class Switch < BaseCommand
def run(args = [])
branch = args.pop
unless branch
out.warn('Usage: gdk switch [BRANCH_NAME]')
return false
end
# Don't save config after this
config.bury!('gitlab.default_branch', branch)
success = GDK::Hooks.with_hooks(config.gdk.update_hooks, 'gdk switch') do
run_rake('update_branch', branch)
end
unless success
GDK::Output.error('Failed to switch branches.', report_error: false)
display_help_message
return false
end
color_branch = out.wrap_in_color(branch, Output::COLOR_CODE_YELLOW)
GDK::Output.success("Switched to #{color_branch}.")
true
rescue Support::Rake::TaskWithLogger::LoggerError => e
e.print!
false
end
end
end
end