giticious 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
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