Cross Reference: /ontohub/lib/dsl/repo.rb
repo.rb revision 08070fff5598f6d5d7662e321becf59f18d00176
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksarequire 'subprocess.rb'
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksarequire 'singleton'
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksadef init(path)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa FileUtils.mkdir_p(path)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa RepositoryCreator.instance.root_path = path
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa FileUtils.rm_rf(Dir.glob(path.join('*')))
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksadef repo_clone(*args)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa RepositoryCreator.instance.clone *args
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksadef add_url_map(*args)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa RepositoryCreator.instance.url_map(*args)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksadef save_to_ontohub
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa RepositoryCreator.instance.save
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaclass RepositoryCreator
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa include Singleton
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa attr_accessor :root_path
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def initialize
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @current_repo = nil
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def clone(name, url)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @current_repo = Repo.new(name, url)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def url_map(source, target)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @current_repo.url_maps << UrlMap.new(source: source, target: target)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def save
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @current_repo.save
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaclass Repo
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa attr_accessor :url_maps
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def initialize(name, url=nil)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @name = name
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @path = RepositoryCreator.instance.root_path.join(name)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa @url_maps = []
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa if url
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa Subprocess.run 'git', 'clone', url, @path
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa else
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa Subprocess.run 'git', 'init', @path
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa def save
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa r = Repository.new name: @name, description: 'Seeded Repository', source_address: @path.to_s, access: 'public_r'
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa r.user = User.first
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa r.url_maps = @url_maps
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa r.save!
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa r.async :convert_to_local!
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa end
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksaend
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# def git_exec(name, *args)
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# args.unshift 'git'
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# args.push \
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# GIT_DIR: NEW_REPOS_ROOT.join(name).to_s,
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# LANG: 'C'
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa#
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# Subprocess.run *args
08070fff5598f6d5d7662e321becf59f18d00176Eugen Kuksa# end