Sha256: 86fabd8013e503306af46300431493d5a3bb6f5eaeb982a924eb7c147a5809be

Contents?: true

Size: 928 Bytes

Versions: 2

Compression:

Stored size: 928 Bytes

Contents

require 'modulesync'

module ModuleSync
  class Hook
    attr_reader :hook_file, :namespace, :branch, :args

    def initialize(hook_file, options = [])
      @hook_file = hook_file
      @namespace = options[:namespace]
      @branch = options[:branch]
      @args = options[:hook_args]
    end

    def content(arguments)
      <<~CONTENT
        #!/usr/bin/env bash

        current_branch=\`git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,'\`
        git_dir=\`git rev-parse --show-toplevel\`
        message=\`git log -1 --format=%B\`
        msync -m "\$message" #{arguments}
      CONTENT
    end

    def activate
      hook_args = []
      hook_args << "-n #{namespace}" if namespace
      hook_args << "-b #{branch}" if branch
      hook_args << args if args

      File.write(hook_file, content(hook_args.join(' ')))
    end

    def deactivate
      File.delete(hook_file) if File.exist?(hook_file)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
modulesync-2.3.1 lib/modulesync/hook.rb
modulesync-2.3.0 lib/modulesync/hook.rb