trk 0.1.8 ā 0.1.10
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 +4 -4
- data/README.md +1 -0
- data/lib/trk/cli.rb +47 -13
- data/lib/trk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 938ec057cb06d6a7467a26653943a062af7254486277899baf915afcac3d37ae
|
4
|
+
data.tar.gz: 6aea1eeff668b49f91a3d5929580a372e729a60b807b85a098dd059ebf932daa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b02763b21935ea8c286790ae4f336ea0de9c6658eabb7da19dd3e9db5f22e8f7c1d1b19992563da9764871a039040834b0e1c3f7266d13dda1199f77b3beda9
|
7
|
+
data.tar.gz: 156e9ed56d7d5570633db0d7d5f987d1355a1565fcebe7a8f9f72c2cc9c1aab97030f4b4a192cf4a592c743f0d5d33785860c34079acedc753b734392519280c
|
data/README.md
CHANGED
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,26 @@ module Trk
|
|
47
48
|
next unless File.directory?(File.join(dir, ".git"))
|
48
49
|
|
49
50
|
Dir.chdir(dir) do
|
50
|
-
puts "\nš
|
51
|
-
|
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 = Open3.capture3("glab api projects/#{encoded_project}/repository/commits?per_page=1")
|
56
|
+
unless status.success?
|
57
|
+
puts "#{UNCHECK_ICON} Glab api failed: #{dir}\n#{stderr}"
|
58
|
+
open_shell
|
59
|
+
next
|
60
|
+
end
|
61
|
+
remote_commit = JSON.parse(stdout_remote).first["id"]
|
62
|
+
stdout_local, _stderr_local, status_local = Open3.capture3("git rev-parse HEAD")
|
63
|
+
local_commit = stdout_local.strip if status_local.success?
|
64
|
+
if remote_commit == local_commit
|
52
65
|
|
53
|
-
if status.success?
|
54
|
-
_stdout, stderr, status = Open3.capture3("git push")
|
55
|
-
if status.success?
|
56
66
|
stdout, stderr, _status = Open3.capture3("git status --porcelain")
|
57
67
|
if stdout.empty?
|
58
|
-
puts "#{CHECK_ICON}
|
68
|
+
puts "#{CHECK_ICON} Up-to-date: #{project_path}, skipping pull"
|
59
69
|
else
|
60
|
-
puts "#{UNCHECK_ICON} Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
|
70
|
+
puts "#{UNCHECK_ICON} Up-to-date but Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
|
61
71
|
system "git status"
|
62
72
|
system "git diff"
|
63
73
|
puts "Do you want to run 'git add . && git commit -amUpdate' and continue (Y/n) ?"
|
@@ -70,19 +80,43 @@ module Trk
|
|
70
80
|
end
|
71
81
|
end
|
72
82
|
else
|
73
|
-
puts "
|
74
|
-
|
83
|
+
puts "\nš Pulling updates in: #{dir}"
|
84
|
+
_stdout, stderr, status = Open3.capture3("git pull")
|
85
|
+
unless status.success?
|
86
|
+
puts "#{UNCHECK_ICON} Git pull failed in: #{dir}\n#{stderr}"
|
87
|
+
open_shell
|
88
|
+
next
|
89
|
+
end
|
90
|
+
_stdout, stderr, status = Open3.capture3("git push")
|
91
|
+
unless status.success?
|
92
|
+
puts "#{UNCHECK_ICON} Git push failed in: #{dir}\n#{stderr}"
|
93
|
+
open_shell
|
94
|
+
next
|
95
|
+
end
|
96
|
+
stdout, stderr, _status = Open3.capture3("git status --porcelain")
|
97
|
+
if stdout.empty?
|
98
|
+
puts "#{CHECK_ICON} Git pull push successful in: #{dir}"
|
99
|
+
else
|
100
|
+
puts "#{UNCHECK_ICON} Git status --porcelain failed in: #{dir}\n#{stdout}\n#{stderr}"
|
101
|
+
system "git status"
|
102
|
+
system "git diff"
|
103
|
+
puts "Do you want to run 'git add . && git commit -amUpdate' and continue (Y/n) ?"
|
104
|
+
answer = $stdin.gets.strip.downcase
|
105
|
+
if answer == "" || answer == "y"
|
106
|
+
success = system "git add . && git commit -amUpdate && git push"
|
107
|
+
open_shell unless success
|
108
|
+
else
|
109
|
+
open_shell
|
110
|
+
end
|
111
|
+
end
|
75
112
|
end
|
76
|
-
else
|
77
|
-
puts "#{UNCHECK_ICON} Git pull failed in: #{dir}\n#{stderr}"
|
78
|
-
open_shell
|
79
|
-
end
|
80
113
|
end
|
81
114
|
end
|
82
115
|
|
83
116
|
puts "\n#{CHECK_ICON} All done!"
|
84
117
|
end
|
85
118
|
|
119
|
+
desc "helper command to stop and investigate"
|
86
120
|
def open_shell
|
87
121
|
puts "Opening shell for manual fix. Type 'exit' when done."
|
88
122
|
system('PS1="trk pull paused on [$(basename $(pwd))]$ " bash --norc')
|
data/lib/trk/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dusan Orlovic
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-06-29 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: thor
|