clenver 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODMxYWUyOGY0OTU4YmYyOGRmYzEzZjA3Mzg0ODE2ODAwYTQ1NWZhMw==
4
+ ODFkYWU5OTk2NDQ3MzM0NDUyMjllZTAxYmFhNWVjMzI5MzAzMmNhMA==
5
5
  data.tar.gz: !binary |-
6
- N2YwMDAzNmJjZTYxOGIzY2U5ZGFmZWRmM2ZiOWMzMDdkM2MwOTlkNw==
6
+ NjMxMGY1M2FjYzQ5OGU3Nzc0YWQ2ZGQ3ZDhlNTZhNjg3NmE3YjYxZg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ODhiOTc5MzA1NTA1NGQ0MzBlNWYyMmNhYTZmODQ0NjgzZWU3ODc4YTM3MDFk
10
- ZDA1MTFhZjgzNGI1ZjUzN2QyZmMzMjU2MjExZTQ0YjJkNjg0Y2I5NjBhZDc5
11
- NTlkZTZjN2IwNTYxOGY0YTNmNjNhZWZlNGI4YjlkNGEzZTYwOWU=
9
+ M2M0NjI0YWIxYTA5OWU2Mzk0YTY4NzhmYzZiNmYxZTYwZWUxNTg4NjY2YjAw
10
+ OWRhZTE4NWY4NjVhNWIwMjUyYTNkNDdlZmFlYWFjMTI5NDI2ZWQ0ZWUwMzMx
11
+ NzI0OGE0MDJkMTAzMjlkOGJhMDMxZTRiZTQ0MjUxNGNjYzNlZWY=
12
12
  data.tar.gz: !binary |-
13
- ZTBjNzcwNjJiMzNiZWE2NTBiOGJlZDEyOTkzMGEyNzA5ZjZmZmQ0YzZmZGZj
14
- NGY5MmFmZWVjOGVkZWYyYTg5ZjEyZTZiOTdlZjk5ODlhNTk2Y2RkNjE0ZGMw
15
- NTVlMTUwMmVhNzZhMTJiYzJkOThiMTIyZTE2N2YzZDIxNTFkYWE=
13
+ ZGZkMzQxNDhjMDA4NjU1MzYwYmJkYTNjM2JhMzM4YmZiOGNiODllNjM5MGYx
14
+ MzQ2ODllZDcyMDU2YTYxMjU1ODJkYjFhYzc5NWRjZWQ1NDgyYmEzNzBlYzMw
15
+ NjM5ZGNlOWViODE3NDUzODVmMmU2OTY4MzA4MzJiMTk1OGUwZjQ=
@@ -0,0 +1,14 @@
1
+ https://github.com/pietrushnic/workspace.git:
2
+ links:
3
+ dotfiles/gitignore:
4
+ - $HOME/.gitignore
5
+ dotfiles/bashrc:
6
+ - ~/.bashrc
7
+ dotfiles/bashrc1:
8
+ - abc/.bashrc
9
+ mkdirs:
10
+ - workspace1
11
+ - workspace2
12
+ remotes:
13
+ upstream: https://github.com/pietrushnic/workspace.git
14
+ run: echo "Finished"
@@ -0,0 +1,24 @@
1
+ class Link
2
+ def initialize(src,dst)
3
+ @src = src
4
+ @dst = expand_dst(dst)
5
+ end
6
+ def create
7
+ puts "Link.create"
8
+ puts @dst
9
+ @dst.each do |d|
10
+ puts "src:#{@src}"
11
+ puts "d:#{d} "
12
+
13
+ File.symlink(@src, d.to_s)
14
+ end
15
+ end
16
+ def expand_dst(dst)
17
+ ret = Array.new()
18
+ dst.each do |d|
19
+ path = %x[ echo #{d}]
20
+ ret.push(path.strip)
21
+ end
22
+ return ret
23
+ end
24
+ end
@@ -0,0 +1,93 @@
1
+ require 'clenver/repository'
2
+ require 'clenver/link'
3
+
4
+ class Project
5
+ def initialize(name, repos)
6
+ @name = name
7
+ @repos = repos
8
+ @abs_path = Dir::pwd + "/" + @name
9
+ end
10
+
11
+ def get_abs_path
12
+ @abs_path
13
+ end
14
+
15
+ def create_repos(dst=nil)
16
+ puts "create_repos:"
17
+ if dst
18
+ path = self.get_abs_path + "/../" + dst.to_s + "/" + @name
19
+ puts path
20
+ FileUtils.mkdir_p(path)
21
+ else
22
+ path = get_abs_path
23
+ Dir::mkdir(path)
24
+ end
25
+ Dir::chdir(path)
26
+ case @repos
27
+ when Hash
28
+ @repos.each do |uri, content|
29
+ #TODO: verify if r is a supported repo
30
+ begin
31
+ r = Repository.new(uri, dst)
32
+ r.clone
33
+ @repos[uri]['object'] = r
34
+ rescue Exception => msg
35
+ puts msg
36
+ end
37
+ end
38
+ when String
39
+ begin
40
+ repo = Repository.new(@repos, dst)
41
+ repo.clone
42
+ rescue Exception => msg
43
+ puts msg
44
+ end
45
+ end
46
+ end
47
+
48
+ def init_repos
49
+ puts "init_repos"
50
+ case @repos
51
+ when Hash
52
+ @repos.each do |uri, content|
53
+ begin
54
+ unless content.nil?
55
+ #links
56
+ unless content['links'].nil?
57
+ content['links'].each do |s,d|
58
+ s_path = content['object'].get_abs_path + "/" + s
59
+ Link.new(s_path,d).create
60
+ end
61
+ end
62
+ #remotes
63
+ unless content['remotes'].nil?
64
+ content['remotes'].each do |name, uri|
65
+ Dir::chdir(content['object'].get_abs_path)
66
+ content['object'].add_remote(name, uri)
67
+ end
68
+ end
69
+ #run
70
+ unless content['run'].nil?
71
+ content['run'].each do |cmd|
72
+ Dir::chdir(content['object'].get_abs_path)
73
+ puts %x[#{cmd}]
74
+ end
75
+ end
76
+ end
77
+ rescue Exception => msg
78
+ puts msg
79
+ end
80
+ end
81
+ when String
82
+ begin
83
+ unless @repos.nil?
84
+ @repos['links'].each do |s,d|
85
+ Link.new(s,d).create
86
+ end
87
+ end
88
+ rescue Exception => msg
89
+ puts msg
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,23 @@
1
+ require 'git'
2
+
3
+ class Repository
4
+ def initialize(repo, dst)
5
+ @repo_uri = repo
6
+ @dst = dst
7
+ @abs_path = nil
8
+ @repo = nil
9
+ end
10
+
11
+ def clone
12
+ repo_basename = File.basename("#{@repo_uri}",".git")
13
+ @repo = Git.clone(@repo_uri, repo_basename)
14
+ @abs_path = Dir::pwd + "/" + repo_basename
15
+ end
16
+
17
+ def get_abs_path
18
+ @abs_path
19
+ end
20
+ def add_remote(name, uri)
21
+ @repo.add_remote(name, uri)
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module Clenver
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clenver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Król
@@ -106,6 +106,10 @@ extra_rdoc_files:
106
106
  files:
107
107
  - bin/clenver
108
108
  - lib/clenver/version.rb
109
+ - lib/clenver/project.rb
110
+ - lib/clenver/repository.rb
111
+ - lib/clenver/link.rb
112
+ - lib/clenver/assets/sample.yml
109
113
  - lib/clenver.rb
110
114
  - README.rdoc
111
115
  - clenver.rdoc