2023-10-20 20:52:59 +02:00
|
|
|
require "open3"
|
2022-12-03 18:26:53 +01:00
|
|
|
|
|
|
|
module Merged
|
|
|
|
class ChangesController < MergedController
|
|
|
|
|
|
|
|
def index
|
|
|
|
end
|
|
|
|
|
2022-12-03 20:25:12 +01:00
|
|
|
def commit
|
2022-12-26 19:29:43 +01:00
|
|
|
if params[:message].blank?
|
|
|
|
message = "must have message"
|
|
|
|
redirect_to changes_index_url , alert: message
|
|
|
|
else
|
2023-10-20 20:52:59 +02:00
|
|
|
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}"
|
2022-12-26 19:29:43 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def reset
|
2022-12-03 20:25:12 +01:00
|
|
|
begin
|
2023-10-20 20:52:59 +02:00
|
|
|
out = capture("git checkout #{Merged.data_dir}")
|
|
|
|
out = capture("git checkout #{Merged::Image.asset_root}" , out)
|
2022-12-26 19:29:43 +01:00
|
|
|
ChangeSet.current.zero
|
|
|
|
message = "Changes reset"
|
2022-12-03 20:25:12 +01:00
|
|
|
rescue
|
2022-12-26 19:29:43 +01:00
|
|
|
message = "Unknown error occured"
|
2022-12-03 20:25:12 +01:00
|
|
|
end
|
2022-12-26 19:29:43 +01:00
|
|
|
redirect_to changes_index_url , notice: message
|
2022-12-03 20:25:12 +01:00
|
|
|
end
|
2022-12-26 19:29:43 +01:00
|
|
|
|
2023-10-20 20:52:59 +02:00
|
|
|
private
|
|
|
|
def capture(cmd , previous = "")
|
|
|
|
out , ignore_status = Open3.capture2e(cmd)
|
|
|
|
puts "CMD:#{ignore_status}: #{cmd}"
|
|
|
|
puts out
|
|
|
|
previous + "\n" + out
|
|
|
|
end
|
2022-12-03 18:26:53 +01:00
|
|
|
end
|
|
|
|
end
|