git-run 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/git-run +27 -0
  3. data/lib/git_run.rb +20 -0
  4. metadata +74 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5896c7419c31d79ce4846342f0b5c739c3ee794d
4
+ data.tar.gz: 895d992d3f503fbeb950cb1791d097a3369c33e2
5
+ SHA512:
6
+ metadata.gz: 46bc3dc6924d73d2a77b05a5ad10309d1fc86ce1919cb957e5e8c9cc4c7188672a0fb118d83acd48be36d44398693007baa75716f24565cc58f797fd7fab8da2
7
+ data.tar.gz: cf2258864f52e15042c2c22a9d27dfd74e15b86328a75712a653bebab530b543397b7e922b3b626eb4606ce894d1543e8c6fb9fc48efc839166f4ee6f2582bd4
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../lib/git_run'
3
+ require 'optparse'
4
+
5
+ OptionParser.new do |opts|
6
+ opts.banner = "Usage: git run [options] <revision> <command>"
7
+
8
+ opts.on("-h", "--help", "Show this message") do
9
+ puts opts
10
+ exit
11
+ end
12
+
13
+ if opts.default_argv.length < 2
14
+ puts opts
15
+ exit
16
+ end
17
+ end.parse!
18
+
19
+ revision = ARGV.shift
20
+
21
+ begin
22
+ print GitRun.run(revision, ARGV.join(' '))
23
+ rescue Rugged::RepositoryError
24
+ $stderr.puts "#{Dir.pwd} is not a git repository."
25
+ rescue Rugged::ReferenceError
26
+ $stderr.puts "'#{revision}' is not a revision in this repository."
27
+ end
@@ -0,0 +1,20 @@
1
+ require 'rugged'
2
+
3
+ class GitRun
4
+ def self.run(revision, command)
5
+ return repository.in_revision(revision) { `#{command}` }
6
+ end
7
+
8
+ def self.repository
9
+ Repository.new('.')
10
+ end
11
+
12
+ class Repository < Rugged::Repository
13
+ def in_revision(revision)
14
+ checkout_tree(revision, strategy: :force)
15
+ output = yield
16
+ reset('master', :hard)
17
+ output
18
+ end
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git-run
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Kreeftmeijer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rugged
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.23'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.23'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.8'
41
+ description: git run runs commands on git revisions
42
+ email: jeff@kreeftmeijer.nl
43
+ executables:
44
+ - git-run
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - bin/git-run
49
+ - lib/git_run.rb
50
+ homepage: https://github.com/jeffkreeftmeijer/git-run
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.4.5
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: git run
74
+ test_files: []