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 +4 -4
- data/lib/giticious/cli/repo.rb +13 -5
- data/lib/giticious/service/repository.rb +46 -3
- data/lib/giticious/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acada4842db7f14d220bb86cd07d8aabafa3a6d9
|
4
|
+
data.tar.gz: d485ffc5d4cfa8c5979354cce9b39ba8555a1b93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49cbf4c80dfb011a48bcca513d3c1210c409167816046a8ea5598c59f035adb82dc2fd209e6cc5550feb7439ee1dac4e9141feef2ad6310aec2032251a1c2db6
|
7
|
+
data.tar.gz: 01bed9e5aa38515c54cef7fa9a2397e67356fd120107dbcbd67058ad52317170db341e3adedfa04a66257bc3b5e1939f530d45ce421bf29af9c7c2009cc5ac32
|
data/lib/giticious/cli/repo.rb
CHANGED
@@ -5,13 +5,21 @@ module Giticious
|
|
5
5
|
desc "create NAME", "Create a new repository"
|
6
6
|
def create(name)
|
7
7
|
begin
|
8
|
-
|
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 =
|
53
|
+
path = build_repo_path(name)
|
11
54
|
|
12
55
|
if init_repository(path) == false
|
13
|
-
raise RuntimeError, "Could not
|
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(
|
74
|
+
FileUtils.rm_rf(build_repo_path(repo.name))
|
32
75
|
|
33
76
|
repo.delete
|
34
77
|
end
|
data/lib/giticious/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2015-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|