File: rpmls.py

package info (click to toggle)
rpm 4.20.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,832 kB
  • sloc: ansic: 70,093; sh: 1,843; python: 1,037; cpp: 324; makefile: 39
file content (27 lines) | stat: -rwxr-xr-x 698 bytes parent folder | download
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
#!/usr/bin/python3

# A simple rpm file list demonstration.
# Accepts both installed and package files as arguments, lists contents
# in `ls` style.

import rpm
import sys
import stat
import time

def ls(h):
    for f in rpm.files(h):
        mode = stat.filemode(f.mode)
        mtime = time.strftime('%b %e %H:%M', time.localtime(f.mtime))
        print('%s %2d %s %s %8d %s %s' %
              (mode, f.nlink, f.user, f.group, f.size, mtime, f.name))

if __name__ == '__main__':
    ts = rpm.ts()
    for arg in sys.argv[1:]:
        if arg.endswith('.rpm'):
            h = ts.hdrFromFdno(arg)
            ls(h)
        else:
            for h in ts.dbMatch('name', arg):
                ls(h)