merged/app/controllers/merged/changes_controller.rb

46 lines
1.2 KiB
Ruby

require "open3"
module Merged
class ChangesController < MergedController
def index
end
def commit
if params[:message].blank?
message = "must have message"
redirect_to changes_index_url , alert: message
else
out = capture("git add merged")
out = capture("git add #{Image.asset_root}" , out)
out = capture("git config --local user.email #{current_member.email}" ,out)
out = capture('git commit -m "#{message}"' ,out)
out = capture("git pull --rebase=true" ,out)
out = capture("git push" ,out)
ChangeSet.current.zero
redirect_to changes_index_url , notice: "Changes commited, #{out}"
end
end
def reset
begin
out = capture("git checkout #{Merged.data_dir}")
out = capture("git checkout #{Merged::Image.asset_root}" , out)
ChangeSet.current.zero
message = "Changes reset"
rescue
message = "Unknown error occured"
end
redirect_to changes_index_url , notice: message
end
private
def capture(cmd , previous = "")
out , ignore_status = Open3.capture2e(cmd)
puts "CMD:#{ignore_status}: #{cmd}"
puts out
previous + "\n" + out
end
end
end