Tizen 2.1 base
[external/libzypp-bindings.git] / examples / ruby / parse2.rb
1 #!/usr/bin/ruby
2
3 require 'zypp'
4 include Zypp
5
6 tmp_cache_path = TmpDir.new()
7 tmp_raw_cache_path = TmpDir.new()
8 tmp_known_repos_path = TmpDir.new()
9
10 opts = RepoManagerOptions.new()
11 opts.repoCachePath = tmp_cache_path.path()
12 opts.repoRawCachePath = tmp_raw_cache_path.path()
13 opts.knownReposPath = tmp_known_repos_path.path()
14
15 repo_manager = RepoManager.new(opts)
16
17 repo_info = RepoInfo.new()
18
19 repo_info.set_alias("factorytest")
20 repo_info.set_name("Test Repo for Factory.")
21 repo_info.set_enabled(true)
22 repo_info.set_autorefresh(false)
23 # repo_info.add_base_url("ftp://dist.suse.de/install/stable-x86/")
24 # repo_info.add_base_url("http://software.opensuse.org/download/home:/Arvin42/openSUSE_Factory/")
25 repo_info.add_base_url("file:///suse/aschnell/tmp")
26
27 repo_manager.add_repository(repo_info)
28
29 res_pool_manager = ResPoolManager.new()
30
31 repos = repo_manager.known_repositories()
32 repos.each do | repo |
33     repo_manager.refresh_metadata(repo)
34     repo_manager.build_cache(repo)
35     rep = repo_manager.create_from_cache(repo)
36     store = rep.resolvables()
37     res_pool_manager.insert(store)
38 end
39
40 pool = res_pool_manager.accessor()
41 # puts pool.class
42
43 pool.each do | p |
44
45     # puts p.class
46     r = p.resolvable
47     # puts r.class
48     puts "#{r.kind} #{r.name} #{r.edition.to_s} #{r.arch.to_s}"
49     puts "  Summary: #{r.summary}"
50     puts "  Size: #{r.size}"
51     puts "  Vendor: #{r.vendor}"
52     puts "  Buildtime: #{r.buildtime}"
53
54     d = r.dep(Dep.PROVIDES)
55     # puts d.class
56     d.each do | x |
57         # puts y.class
58         puts "  Provides: #{x.to_s}"
59     end
60
61     puts
62
63 end
64