giticious 0.9.3 → 0.9.4

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
  SHA1:
3
- metadata.gz: e017881d98f992cb3ad73f98197b59614360367a
4
- data.tar.gz: c46909a25604d2caddc605b6294eadbc351fb65c
3
+ metadata.gz: acada4842db7f14d220bb86cd07d8aabafa3a6d9
4
+ data.tar.gz: d485ffc5d4cfa8c5979354cce9b39ba8555a1b93
5
5
  SHA512:
6
- metadata.gz: 7896375266ad95c52fed2d2f729941c0fcb05414dc9ac9df1cc1a7a6a08f403048a24b672adbb7696d9b1fed5b9dfa07ff1138e6cbe24c9ea17ac58cb64dd6f4
7
- data.tar.gz: 2b7c2a6876dec722ac99703b10a4cb3958d64c40e839d8675c04e81e201517521fda5ffb0be768de7965f95ba6078a50f4b876df560829f9d82284ab0bb5caf1
6
+ metadata.gz: 49cbf4c80dfb011a48bcca513d3c1210c409167816046a8ea5598c59f035adb82dc2fd209e6cc5550feb7439ee1dac4e9141feef2ad6310aec2032251a1c2db6
7
+ data.tar.gz: 01bed9e5aa38515c54cef7fa9a2397e67356fd120107dbcbd67058ad52317170db341e3adedfa04a66257bc3b5e1939f530d45ce421bf29af9c7c2009cc5ac32
@@ -5,13 +5,21 @@ module Giticious
5
5
  desc "create NAME", "Create a new repository"
6
6
  def create(name)
7
7
  begin
8
- if Giticious::Service::Repository.new.create(name) == false
9
- $stderr.puts "Could not create repository"
10
- exit 1
11
- end
12
-
8
+ Giticious::Service::Repository.new.create(name)
13
9
  puts "The repository has been created"
10
+ list()
11
+ rescue => e
12
+ $stderr.puts e.message
13
+ exit 1
14
+ end
15
+ end
14
16
 
17
+ desc "import URL", "Create a repository and import the repository at this URL"
18
+ def import(url)
19
+ begin
20
+ puts "Importing #{url}..."
21
+ Giticious::Service::Repository.new.import(url)
22
+ puts "Repository imported"
15
23
  list()
16
24
  rescue => e
17
25
  $stderr.puts e.message
@@ -6,11 +6,54 @@ module Giticious
6
6
  Giticious::Model::Repository.all
7
7
  end
8
8
 
9
+ def build_repo_path(name)
10
+ if name.empty?
11
+ raise ArgumentError, "repo name may not be empty"
12
+ end
13
+
14
+ "#{Dir.home}/repositories/#{name}.git"
15
+ end
16
+
17
+ def build_temp_path(name)
18
+ "#{Dir.home}/.giticious/temp_#{File.basename(name)}"
19
+ end
20
+
21
+ def import(url)
22
+ target_repo_name = File.basename(url).gsub(".git", "")
23
+
24
+ if create(target_repo_name) == false
25
+ raise RuntimeError, "Could not create repository"
26
+ end
27
+
28
+ temp_name = build_temp_path(url)
29
+
30
+ begin
31
+ new_url = build_repo_path(target_repo_name)
32
+
33
+ `git clone #{url} #{temp_name}`
34
+
35
+ if $?.success? == false
36
+ raise RuntimeError, "Could not clone repo URL"
37
+ end
38
+
39
+ `cd #{temp_name} && git remote add new #{new_url} && git push --all new`
40
+
41
+ if $?.success? == false
42
+ raise RuntimeError, "Could not import repo"
43
+ end
44
+ rescue => e
45
+ delete(target_repo_name)
46
+ raise e
47
+ finally
48
+ FileUtils.rm_rf(temp_name)
49
+ end
50
+ end
51
+
9
52
  def create(name)
10
- path = "#{Dir.home}/repositories/#{name}.git"
53
+ path = build_repo_path(name)
11
54
 
12
55
  if init_repository(path) == false
13
- raise RuntimeError, "Could not initi Git repository"
56
+ raise RuntimeError, "Could not init Git repository"
14
57
  end
15
58
 
16
59
  repo = Giticious::Model::Repository.new
@@ -28,7 +71,7 @@ module Giticious
28
71
  end
29
72
 
30
73
  Giticious::Model::Permission.where(repository_id: repo.id).delete_all
31
- FileUtils.rm_rf("#{Dir.home}/repositories/#{repo.name}.git")
74
+ FileUtils.rm_rf(build_repo_path(repo.name))
32
75
 
33
76
  repo.delete
34
77
  end
@@ -1,3 +1,3 @@
1
1
  module Giticious
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: giticious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Prandzioch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-12 00:00:00.000000000 Z
11
+ date: 2015-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler