18 lines
668 B
Awk
18 lines
668 B
Awk
# syntax: GAWK -f WRITE_TO_WINDOWS_EVENT_LOG.AWK
|
|
BEGIN {
|
|
write("INFORMATION",1,"Rosetta Code")
|
|
exit (errors == 0) ? 0 : 1
|
|
}
|
|
function write(type,id,description, cmd,esf) {
|
|
esf = errors # errors so far
|
|
cmd = sprintf("EVENTCREATE.EXE /T %s /ID %d /D \"%s\" >NUL",type,id,description)
|
|
printf("%s\n",cmd)
|
|
if (toupper(type) !~ /^(SUCCESS|ERROR|WARNING|INFORMATION)$/) { error("/T is invalid") }
|
|
if (id+0 < 1 || id+0 > 1000) { error("/ID is invalid") }
|
|
if (description == "") { error("/D is invalid") }
|
|
if (errors == esf) {
|
|
system(cmd)
|
|
}
|
|
return(errors)
|
|
}
|
|
function error(message) { printf("error: %s\n",message) ; errors++ }
|