Sha256: bb3b1edac2faa5dc32afb12f72bcd350e7460eac35ab7994a27d1f0a68f112ae

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

require 'git'
require 'json'
require 'fileutils'

# canzea --lifecycle=wire --solution=gogs --action=push-content --args='{"file":"metadata.json","path":"test/a/metadata.json", "comment":"V1.0"}'
# canzea --util=push-config git@165.227.87.135:root/ecosystem.git "Latest Input" --args='{"files":[{"file":"metadata.json","path":"test/a/metadata.json"}]}''

class PushConfig
    def initialize ()
        @log = Logger.new(Canzea::config[:logging_root] + '/plans.log')
    end

    def do(url, comment, params)
        begin

            # "git@#{ENV["GOGS_ADDRESS"]}:root/ecosystem.git"

            folder = "_working"

            FileUtils.rm_rf(folder)

            g = Git.clone(url, folder, :path => '.')

            params['files'].each { | f |
                file = f['file']

                path = f['path']

                FileUtils.mkdir_p File.dirname("#{folder}/#{path}")

                open("#{folder}/#{path}", 'w') { |f|
                  f.puts File.read(file)
                }
                g.add("#{path}")
            }


            count = 0
            g.chdir do
              g.status.changed.each do |file|
                    count = count +1
              end
              g.status.added.each do |file|
                    count = count +1
              end
              g.status.deleted.each do |file|
                    count = count +1
              end
            end

            if count == 0
              puts "No changes"
            else
              g.commit(comment)

              g.push
            end
        rescue => exception
            @log.error("PushConfig Failed")
            @log.error(exception.to_s)
            @log.error(exception.backtrace)
            abort()
        end
    end

    def log (msg)
        puts msg
        @log.info(msg)
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
canzea-0.1.137 lib/commands/push-config.rb