/usr/share/doc/ruby-debian/examples/dpkg.rb is in ruby-debian 0.3.9build8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #!/usr/bin/ruby
#
# dpkg.rb - ruby script dpkg compatible interfaces
# Copyright (c) 2001 Fumitoshi UKAI <ukai@debian.or.jp>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id: dpkg.rb,v 1.5 2001/04/22 16:39:29 ukai Exp $
#
require 'debian'
require 'getoptlong'
include Debian
opts = GetoptLong.new(
["--list", "-l", GetoptLong::NO_ARGUMENT],
["--status", "-s", GetoptLong::NO_ARGUMENT],
["--get-selections", GetoptLong::NO_ARGUMENT],
["--print-avail", GetoptLong::NO_ARGUMENT],
["--listfiles", "-L", GetoptLong::NO_ARGUMENT],
["--search", "-S", GetoptLong::NO_ARGUMENT],
["--help", "-h", GetoptLong::NO_ARGUMENT])
opts.ordering = GetoptLong::REQUIRE_ORDER
def usage
puts "Usage:"
puts " #{$0} --list [<package> ...]"
puts " #{$0} --status [<package> ...]"
puts " #{$0} --get-selections [<pattern> ...]"
puts " #{$0} --print-avail [<package> ...]"
puts " #{$0} --listfiles [<package> ...]"
puts " #{$0} --search [<pattern> ...]"
puts " #{$0} --help"
end
func = Proc.new {|args| $stderr.puts "#{$0}: need an action option"}
begin
opts.each {|opt, arg|
case opt
when "--list" then func = Proc.new {|args|
Dpkg.status(args).each_package {|deb|
puts [Deb::SELECTION_ID[deb.selection] +
Deb::STATUS_ID[deb.status] +
Deb::EFLAG_ID[deb.ok],
deb.package,
deb.version,
deb.description].join(" ")
}
}
when "--status" then func = Proc.new {|args|
Dpkg.status(args).each_package {|deb|
puts deb.info_s
}
}
when "--get-selections" then func = Proc.new {|args|
Dpkg.selections(args).each_package {|deb|
puts [deb.package, deb.selection].join("\t")
}
}
when "--print-avail" then func = Proc.new {|args|
Dpkg.avail(args).each_package {|deb|
puts deb.info_s
}
}
when "--listfiles" then func = Proc.new {|args|
Dpkg.listfiles(args).each {|dlist|
puts dlist
puts
}
}
when "--search" then func = Proc.new {|args|
Dpkg.search(args).each {|m|
puts "#{m[0]}: #{m[1]}"
}
}
when "--help" then usage; exit 0
else raise GetoptLong::InvalidOption
end
}
rescue GetoptLong::InvalidOption
usage; exit 1
end
func.call(ARGV)
|