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 +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
|