#!/usr/bin/env python
# $Id: who.py,v 1.2 2001-03-20 10:24:33-06 annis Exp $
# $Source: /u/annis/code/NewMom/kstat/examples/RCS/who.py,v $
#
# Copyright (c) 2001 William S. Annis. All rights reserved.
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl (the Artistic Licence). Developed at
# the Department of Biostatistics and Medical Informatics, University
# of Wisconsin, Madison.
"""Reproduce the solaris who(1) program.
I don't bother to create the exact same formatting, but you get
the idea.
"""
from utmpx import *
from kstats import *
from time import localtime, strftime
import sys
def who():
"""who() - get info on users currently logged in"""
# rewind first
setutxent()
ut = getutxent()
users = []
while ut:
if ut['ut_type'] == 'USER_PROCESS':
users.append(ut)
ut = getutxent()
endutxent()
return users
def format_who(out=sys.stdout):
"""pretend to be Solaris' who(1) program"""
users = who()
for u in users:
out.write("%-8s %-8s\t%s \t(%s)\n" % (u['ut_user'],
u['ut_line'],
strftime("%h %d %R", localtime(u['ut_tv'])),
u['ut_host']))
if __name__ == '__main__':
#print who()
format_who()
# EOF