trk 0.1.8 → 0.1.9

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/lib/trk/cli.rb +44 -10
  4. data/lib/trk/version.rb +1 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d801933ed2fbbba2061aa5c63fa026f44204ac35b0b3d9c2a7268e024b924d87
4
- data.tar.gz: bf385c29ba9af81e616f969261fa491ec4a649a7ec54ef13c63de4bb103cc9dd
3
+ metadata.gz: 90564bb5743c70ff927900dbcb29c94264daa6a9d956f9d5c8459856a248b206
4
+ data.tar.gz: 794412abfb305ca51b57ece396051cfe892677dad151a3ca097aaae5957b1d61
5
5
  SHA512:
6
- metadata.gz: 206534aa53d7b5cc0f98b91e844b9468654fc8c7b913ca2603256a692bdb818be50421540328417791c8f34abe18a540b798728bfe0df15d31cdc0259ab83190
7
- data.tar.gz: 46f5c88ab980c63e22edfbfd36090b97874dcc44e1d7235c1387e403a1db4110939a3f2eb08a8ad3e01a4835499b0c8681fdce21c0a7ca976663038d5190c450
6
+ metadata.gz: 66fae02f19163eabbe3d992d5c48d9046def0c2538f7d443295e4ca7b14de80542d90310913b99261616e6f18b71161f56b44a415e5923d22446589a8557337e
7
+ data.tar.gz: b9024873d8ad9e7f92d50bb131c0fef22f232cae2d241941ae6cee6e9a9615b985539ee8cb31cd92db4c172aa22854e48f0e4e7ec090c4d2f7c12038785ae34a
data/README.md CHANGED
@@ -122,6 +122,7 @@ ruby -Itest test/test_link.rb --name test_link_show_success
122
122
  To release a new version, update the version number, git commit
123
123
  ```
124
124
  vi lib/trk/version.rb
125
+ bundle
125
126
 
126
127
  git commit -am"Update"
127
128
  ```
data/lib/trk/cli.rb CHANGED
@@ -3,6 +3,7 @@ require "open3"
3
3
  require "net/http"
4
4
  require "uri"
5
5
  require "debug"
6
+ require "json"
6
7
 
7
8
  module Trk
8
9
  class CLI < Thor
@@ -47,17 +48,22 @@ module Trk
47
48
  next unless File.directory?(File.join(dir, ".git"))
48
49
 
49
50
  Dir.chdir(dir) do
50
- puts "\nšŸ”„ Pulling updates in: #{dir}"
51
- _stdout, stderr, status = Open3.capture3("git pull")
51
+ puts "\nšŸ”„ Check if the last commit is the same in: #{dir}"
52
+ # Get remote latest commit SHA via glab API
53
+ project_path = dir.sub("#{base_dir}/", "")
54
+ encoded_project = URI.encode_www_form_component(project_path)
55
+ stdout_remote, stderr, status_remote = Open3.capture3("glab api projects/#{encoded_project}/repository/commits?per_page=1")
56
+ if status_remote.success?
57
+ remote_commit = JSON.parse(stdout_remote).first["id"]
58
+ stdout_local, _stderr_local, status_local = Open3.capture3("git rev-parse HEAD")
59
+ local_commit = stdout_local.strip if status_local.success?
60
+ if remote_commit == local_commit
52
61
 
53
- if status.success?
54
- _stdout, stderr, status = Open3.capture3("git push")
55
- if status.success?
56
62
  stdout, stderr, _status = Open3.capture3("git status --porcelain")
57
63
  if stdout.empty?
58
- puts "#{CHECK_ICON} Git pull push successful in: #{dir}"
64
+ puts "#{CHECK_ICON} Up-to-date: #{project_path}, skipping pull"
59
65
  else
60
- puts "#{UNCHECK_ICON} Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
66
+ puts "#{UNCHECK_ICON} Up-to-date but Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
61
67
  system "git status"
62
68
  system "git diff"
63
69
  puts "Do you want to run 'git add . && git commit -amUpdate' and continue (Y/n) ?"
@@ -70,11 +76,39 @@ module Trk
70
76
  end
71
77
  end
72
78
  else
73
- puts "#{UNCHECK_ICON} Git push failed in: #{dir}\n#{stderr}"
74
- open_shell
79
+ puts "\nšŸ”„ Pulling updates in: #{dir}"
80
+ _stdout, stderr, status = Open3.capture3("git pull")
81
+
82
+ if status.success?
83
+ _stdout, stderr, status = Open3.capture3("git push")
84
+ if status.success?
85
+ stdout, stderr, _status = Open3.capture3("git status --porcelain")
86
+ if stdout.empty?
87
+ puts "#{CHECK_ICON} Git pull push successful in: #{dir}"
88
+ else
89
+ puts "#{UNCHECK_ICON} Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
90
+ system "git status"
91
+ system "git diff"
92
+ puts "Do you want to run 'git add . && git commit -amUpdate' and continue (Y/n) ?"
93
+ answer = $stdin.gets.strip.downcase
94
+ if answer == "" || answer == "y"
95
+ success = system "git add . && git commit -amUpdate && git push"
96
+ open_shell unless success
97
+ else
98
+ open_shell
99
+ end
100
+ end
101
+ else
102
+ puts "#{UNCHECK_ICON} Git push failed in: #{dir}\n#{stderr}"
103
+ open_shell
104
+ end
105
+ else
106
+ puts "#{UNCHECK_ICON} Git pull failed in: #{dir}\n#{stderr}"
107
+ open_shell
108
+ end
75
109
  end
76
110
  else
77
- puts "#{UNCHECK_ICON} Git pull failed in: #{dir}\n#{stderr}"
111
+ puts "#{UNCHECK_ICON} Glab api failed: #{dir}\n#{stderr}"
78
112
  open_shell
79
113
  end
80
114
  end
data/lib/trk/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Trk
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.9"
5
5
  CHECK_ICON = "āœ… "
6
6
  UNCHECK_ICON = "āŒ "
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dusan Orlovic