๐Ÿ“ฆ felixonmars / archlinux-futils

๐Ÿ“„ find-package-in-db-file ยท 21 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#!/usr/bin/ruby
require 'tmpdir'
require 'pycall/import'

include PyCall::Import
pyimport :pyalpm

db_fullpath, package, field = ARGV
db_filename = db_fullpath.split("/")[-1]
db = db_filename.split('.')[0]

Dir.mktmpdir {|d|
    Dir.mkdir(d + "/sync")
    File.symlink(File.absolute_path(db_fullpath), "#{d}/sync/#{db_filename}")
    handle = pyalpm.Handle.new(".", d)
    db_handle = handle.register_syncdb(db, 0)
    pkg = db_handle.get_pkg package
    fail "Package not found in repo." if pkg == nil
    puts pkg.send field
}