Sha256: 6cec2cabe8590f787d2632cf0d22614b89ad284c7a6528c0bf84bafd41982691

Contents?: true

Size: 920 Bytes

Versions: 3

Compression:

Stored size: 920 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)
      <<-EOF
#!/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}
EOF
    end

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

      File.open(hook_file, 'w') do |file|
        file.write(content(hook_args.join(' ')))
      end
    end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
modulesync-0.8.1 lib/modulesync/hook.rb
modulesync-0.8.0 lib/modulesync/hook.rb
modulesync-0.7.2 lib/modulesync/hook.rb