#!/usr/bin/perl # this program is a performance measurement wrapper around anything that it is # called with; it's arg-1 becomes the program being measured, with arg-2 # onwards being arg-1's arguments # sorta like the "time" command... hence the name :-) use strict; use warnings; # ---------------------------------------------------------------------------- # find the rc file, then pull the libraries # ---------------------------------------------------------------------------- # see notes on this code in gl-auth-command BEGIN { # find and set bin dir $0 =~ m|^(/)?(.*)/| and $ENV{GL_BINDIR} = ($1 || "$ENV{PWD}/") . $2; } use lib $ENV{GL_BINDIR}; use gitolite_rc; use gitolite_env; use gitolite qw(log_it); use Time::HiRes qw(gettimeofday tv_interval); # ---------------------------------------------------------------------------- # start... # ---------------------------------------------------------------------------- # rc file do "$ENV{HOME}/.gitolite.rc"; # this file is always in a fixed place; code in the main gitolite that # seems to indicate it is not, is obsolete and needs to be fixed. # --------------------------------------------------------------- my $starttime = [gettimeofday]; my $pgm = shift; my $returncode = system($pgm, @ARGV); $returncode >>= 8; $ENV{GL_USER} = shift; my $elapsedtime = tv_interval($starttime); $ENV{GL_LOG} = get_logfilename($GL_PERFLOGT); # log_it logs to $ENV{GL_LOG} log_it("", "$elapsedtime\trc=$returncode");