open_git 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e133f59c02d53f04615fad070f58005c11cd3c74b91a8909d6fca5845945f97
4
- data.tar.gz: 8ca25f79b8146c592a6eeb6c76680d25c2a60f8192f1d567c0a99500fc85dff6
3
+ metadata.gz: b65d60f92b9722efe5a45c713edb979b66ea93792559599c04ea47a81230e87a
4
+ data.tar.gz: 3ea0f1cc15675b04cea3f9160d7c037840d0c0758cb5b919a0cda8cf48c3f4ba
5
5
  SHA512:
6
- metadata.gz: bc602439f4a7e737e12141c179e1bb735b277cd5ea5940427feb815a50407458cd6f7c0eed32508d2348fca95c88f7537f129df33f214d583c41716d228a4e93
7
- data.tar.gz: bb05c05cd538b8cd879dbdbddaa9960324688b944894dd5a6e2e2c2da4436a3347c106b628c62a6edebb96dcbb06a1791903583e2ade0ad5c9918a66bdb28b32
6
+ metadata.gz: dc15127c4a6aa9a2ba0e036848c645b5cbecfa331e337ae429aa35a66fd2f4f780a64c9f65cbbf2710cdaabe4ec90373e5a3d2611f2e7578840ff45192885161
7
+ data.tar.gz: e664adfabe313928b1e424e2cd4a1cd01fe558134bd8eb855a03d6e1e0b723c1705352efcb6b97709e4ced89f0eb42dd7e6a3f22ce1288745dc81acf5dc3e141
data/bin/opr CHANGED
@@ -3,17 +3,31 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
3
3
 
4
4
  require 'rubygems'
5
5
  require 'open_git'
6
+ require 'English'
6
7
 
7
8
  if ARGV.size > 1
8
9
  puts "usage: opr [<branch>]"
9
10
  else
10
11
  begin
11
- system "open #{OpenGit::Open.github_pull_request ARGV[0]}"
12
+ if OpenGit::Git.upstream == ""
13
+ output = `git push --set-upstream #{OpenGit::Git.remote} #{OpenGit::Git.branch}`
14
+ if $CHILD_STATUS != 0
15
+ puts "opr: Error trying to push new branch to remote."
16
+ puts output
17
+ exit
18
+ end
19
+ system "open #{OpenGit::Open.github_new_pull_request ARGV[0]}"
20
+ else
21
+ # upstream has been set and a pull request may already exist
22
+ system "open #{OpenGit::Open.github_pull_request ARGV[0]}"
23
+ end
12
24
  rescue OpenGit::Git::NoGitRepoError
13
25
  puts "opr: No git repo found. Please use opr in a git repo."
14
26
  rescue OpenGit::Git::NoRemoteError
15
27
  puts "opr: No git remote found. Setup a git remote before using opr."
16
28
  rescue OpenGit::Git::InvalidRemoteError
17
29
  puts "opr: could not find specified remote."
30
+ rescue StandardError => e
31
+ puts "opr: unexpected internal error."
18
32
  end
19
33
  end
@@ -34,7 +34,14 @@ module OpenGit
34
34
  end
35
35
 
36
36
  def self.branch
37
- return `git rev-parse --abbrev-ref HEAD`.strip
37
+ `git rev-parse --abbrev-ref HEAD`.strip
38
+ end
39
+
40
+ def self.upstream
41
+ up = `git rev-parse --abbrev-ref --symbolic-full-name @{u}`.strip
42
+ # ignore output if error code 128, no upstream error
43
+ up = '' if $CHILD_STATUS == 128
44
+ up
38
45
  end
39
46
  end
40
47
  end
@@ -12,5 +12,8 @@ module OpenGit
12
12
  "#{self.github(remote)}/pull/#{OpenGit::Git.branch}"
13
13
  end
14
14
 
15
+ def self.github_new_pull_request(remote = nil)
16
+ "#{self.github(remote)}/pull/new/#{OpenGit::Git.branch}"
17
+ end
15
18
  end
16
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open_git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Peng