Unix finger command

#!/usr/bin/env mwnci
include("pwd")
cli_args=shift(ARGV)
if (len(cli_args) == 0) {
    println("Usage: ", PROGNAME, "  ...")
    exit(1)
}

foreach user in cli_args {
    office=""
    office_phone=""
    home_phone=""
    real_name=user
    pw=getpwent(user)
    if (len(pw) == 0) {
        println(PROGNAME, ": Unknown user: ", user)
    } else {
        if (len(pw["Gecos"]) > 0) {
            if (pw["Gecos"][0]) {real_name=pw["Gecos"][0]}
            if (pw["Gecos"][1]) {office=pw["Gecos"][1]}
            if (pw["Gecos"][2]) {office_phone=pw["Gecos"][2]}
            if (pw["Gecos"][3]) {home_phone=pw["Gecos"][3]}
            office_line=trimprefix(office + ", " + office_phone, ", ")
            office_line=trimsuffix(office_line, ", ")
        }

        printf("Login: %-33sName: %s\n", pw["User"], real_name)
        printf("Directory:%-30sShell: %s\n", pw["Home"], pw["Shell"])

        if (len(office_line) > 0) {
            printf("Office: %-32s", office_line)
        }

        if (len(home_phone) > 0) {
            println("Home Phone: ", home_phone)
        }

        logged_in=false
        user_who=split(system("who"),"\n")
        foreach line in user_who {
            fline=fields(line)
            if (fline[0] == user) {
                printf("On since %s %s %s on %s\n",
	               fline[2], fline[3], fline[4], fline[1])
                logged_in=true
            }
        }

        if (!logged_in) {
            cmd=sprintf("last %s | head -1", user)
            user_last=trim(system(cmd))
            if (len(user_last) == 0) {
                println("Never logged in.")
            } else {
                fline=fields(user_last)
	        printf("Last login %s %s %s %s on %s\n",
	               fline[2], fline[3], fline[4], fline[5], fline[1])
            }
        }

        PLAN=sprintf("%s/.plan", pw["Home"])
        PROJECT=sprintf("%s/.project", pw["Home"])

        if (file(PROJECT)) {
            println("Project:\n", cat(PROJECT))
        }

        if (!file(PLAN)) {
            println("No plan.")
	} else {
	    println("Plan:\n", cat(PLAN))
        }
        println()
    }
}