29 lines
597 B
Ruby
29 lines
597 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module StorageManager
|
||
|
class Git < StorageManager::Local
|
||
|
def delete(path)
|
||
|
return unless exists?(path)
|
||
|
super
|
||
|
system!("git add #{base_path}#{path}")
|
||
|
system!("git commit -m \"Remove #{path[1..]}\"")
|
||
|
system!("git push")
|
||
|
end
|
||
|
|
||
|
def put(path, io)
|
||
|
super
|
||
|
if exists?(path)
|
||
|
system!("git add #{base_path}#{path}")
|
||
|
system!("git commit -m \"Add #{path[1..]}\"")
|
||
|
system!("git push")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def system!(*)
|
||
|
system(*, exception: true, chdir: base_path)
|
||
|
end
|
||
|
end
|
||
|
end
|