smdev 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/smdev.rb +34 -10
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61964b5c32328c5e2265a32622cb85c366a70780eeaab4b95e154577942602b9
4
- data.tar.gz: 39c56ddd43405021c465494bf439e174681e431146e59a808937f0c6592a2f97
3
+ metadata.gz: 68f87bb98d072e7bc59c529f581a7c8ae96c4d66b3793f9357a99a8a0ac30f87
4
+ data.tar.gz: e7cf6b40abd1062104800ac076f31400841f9571e3c257374609fd3f60eb4c53
5
5
  SHA512:
6
- metadata.gz: 54d844cb8292bea2cf364c473809f385bba2375d4bedede0927192c620e33bc685289831b1f7973a17a19d7b8471acfda9cf46de845367b7f2d2ab15ee3994e5
7
- data.tar.gz: 123be6e3958715b82e1c0ae92c25e9a63f580ad0cbf55f43a2369ee1dbea782fe6d3b7dbb71e551ce4b66ef767ec817097ea0a8d6cd39ade8d3818c14482d13d
6
+ metadata.gz: c2fd59b0dbfb6ff0f1c3ca50c02212531da7a81c1d50f50e91fbc752ef7332f858ee1a6c20569cf0d2195c149664127c9ac3a5269deba2d5e29cc2a63994317c
7
+ data.tar.gz: 53be714003b7f14f90fdd46a8c167c9f35d3cd1dbcc96db3f10a5818ece89135b9787554374d072c36d0fea5c68fb03dbed52a8deb7143249c15ec0c84841e41
data/lib/smdev.rb CHANGED
@@ -66,6 +66,8 @@ module Smdev
66
66
  system_install
67
67
  when "checkout_repos"
68
68
  checkout_repos(options)
69
+ when "update_repos"
70
+ update_repos(options)
69
71
  when "console"
70
72
  options[:command] = "rails c"
71
73
  open_ssh(options)
@@ -143,7 +145,7 @@ module Smdev
143
145
  system('sudo', 'gem', 'install', 'rails')
144
146
  end
145
147
 
146
- def checkout_repos(options)
148
+ def get_repos(options)
147
149
  token = ENV['GITHUB_TOKEN']
148
150
  if token.nil?
149
151
  # Prompt the user for their GitHub personal access token
@@ -182,24 +184,46 @@ module Smdev
182
184
  break if repos_page.length < per_page
183
185
  page_number += 1
184
186
  end
187
+ end
185
188
 
186
- # # No team name was provided, so get a list of all teams in the organization
187
- # teams = client.organization_teams(org_name)
188
- # # Get a list of all repositories in the organization that are assigned to each team
189
- # repos = []
190
- # teams.each do |team|
191
- # team_repos = client.team_repos(team.id)
192
- # repos.concat(team_repos)
193
- # end
189
+ return repos
190
+ end
191
+
192
+ def update_repos(options)
193
+ repos = get_repos(options)
194
+ # Clone each repository to a local directory
195
+ repos.each do |repo|
196
+ clone_url = repo.clone_url
197
+ ssh_url = repo.ssh_url
198
+ repo_name = repo.name
199
+ url = options[:https] ? clone_url : ssh_url
200
+
201
+ if Dir.exist?(repo_name)
202
+ puts "Checking for updates to '#{repo_name}'"
203
+ `cd #{repo_name} && git pull`
204
+ else
205
+ puts "Repository '#{repo_name}' isn't cloned locally. Skipping update."
206
+ end
194
207
  end
195
208
 
209
+ end
210
+
211
+
212
+ def checkout_repos(options)
213
+ repos = get_repos(options)
214
+
196
215
  # Clone each repository to a local directory
197
216
  repos.each do |repo|
198
217
  clone_url = repo.clone_url
199
218
  ssh_url = repo.ssh_url
200
219
  repo_name = repo.name
201
220
  url = options[:https] ? clone_url : ssh_url
202
- `git clone #{url} #{repo_name}`
221
+
222
+ if Dir.exist?(repo_name)
223
+ puts "Repository '#{repo_name}' already exists locally. Skipping clone."
224
+ else
225
+ `git clone #{url} #{repo_name}`
226
+ end
203
227
  end
204
228
 
205
229
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smdev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Neighbors
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-12 00:00:00.000000000 Z
11
+ date: 2024-01-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: StrongMind Development Tool
14
14
  email: derek.neighbors@strongmind.com
@@ -24,7 +24,7 @@ homepage: https://github.com/StrongMind/Helpers/tree/main/smdev
24
24
  licenses:
25
25
  - MIT
26
26
  metadata: {}
27
- post_install_message:
27
+ post_install_message:
28
28
  rdoc_options: []
29
29
  require_paths:
30
30
  - lib
@@ -39,8 +39,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  requirements: []
42
- rubygems_version: 3.3.5
43
- signing_key:
42
+ rubygems_version: 3.4.13
43
+ signing_key:
44
44
  specification_version: 4
45
45
  summary: StrongMind Development Tool
46
46
  test_files: []