1 Commits
0.2.1 ... main

Author SHA1 Message Date
9be03f61ea Updates to work under Nim 1.x 2025-12-16 15:12:49 -06:00
5 changed files with 26 additions and 22 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
.*.sw?
log_happy
nimcache/

View File

@@ -2,11 +2,13 @@
## =========
##
## Little tool to extract expected information from log streams.
import json, ncurses, os, osproc, sequtils, streams, strutils, threadpool
import json, logging, ncurses, os, osproc, sequtils, streams, strutils, threadpool
import nre except toSeq
import private/ncurses_ext
from posix import signal
type
Expectation* = ref object
label: string
@@ -33,7 +35,7 @@ when isMainModule:
var outFile: File
try:
let VERSION = "0.2.1"
let VERSION = "0.2.0"
let usage = """
Usage:
log_happy [options]
@@ -111,7 +113,7 @@ Expectations JSON definitions follow this format:
elif arg.startsWith("-i"):
let filename = arg[2..^1]
try:
if not fileExists(filename):
if not existsFile(filename):
exitErr "no such file (" & filename & ")"
inStream = newFileStream(filename)

View File

@@ -1,6 +1,6 @@
# Package
version = "0.2.1"
version = "0.2.0"
author = "Jonathan Bernard"
description = "Scan logs for regex-defined events and report on what was found."
license = "MIT"
@@ -9,3 +9,4 @@ bin = @["log_happy"]
# Dependencies
requires @["nim >= 0.16.1", "docopt >= 0.6.4", "ncurses"]

2
mise.toml Normal file
View File

@@ -0,0 +1,2 @@
[tools]
nim = "1"

View File

@@ -1,31 +1,31 @@
import ncurses
export ncurses
#proc keypad*(win: PWindow, enable: bool): int {.cdecl, discardable, importc: "keypad", dynlib: libncurses.}
#proc scrollok*(win: PWindow, enable: bool): int {.cdecl, discardable, importc: "scrollok", dynlib: libncurses.}
#proc nodelay*(win: PWindow, enable: bool): int {.cdecl, discardable, importc: "nodelay", dynlib: libncurses.}
#proc keypad*(win: ptr window, enable: bool): int {.cdecl, discardable, importc: "keypad", dynlib: libncurses.}
#proc scrollok*(win: ptr window, enable: bool): int {.cdecl, discardable, importc: "scrollok", dynlib: libncurses.}
#proc nodelay*(win: ptr window, enable: bool): int {.cdecl, discardable, importc: "nodelay", dynlib: libncurses.}
#proc nonl*(): int {.cdecl, discardable, importc: "nonl", dynlib: libncurses.}
proc newwin*(num_rows, num_cols, begin_x, begin_y: int): PWindow {.cdecl, discardable, importc: "newwin", dynlib: libncurses.}
proc delwin*(win: PWindow): int {.cdecl, discardable, importc: "delwin", dynlib: libncurses.}
#proc newwin(num_rows, num_cols, begin_x, begin_y: int): PWindow {.cdecl, discardable, importc: "newwin", dynlib: libncurses.}
proc newwin*(num_rows, num_cols, begin_x, begin_y: int): ptr window {.cdecl, discardable, importc: "newwin", dynlib: libncurses.}
proc delwin*(win: ptr window): int {.cdecl, discardable, importc: "delwin", dynlib: libncurses.}
#proc newwin(num_rows, num_cols, begin_x, begin_y: int): ptr window {.cdecl, discardable, importc: "newwin", dynlib: libncurses.}
#proc wgetch*(win: PWindow): int {.cdecl, discardable, importc: "wgetch", dynlib: libncurses.}
#proc wrefresh*(win: PWindow): int {.cdecl, discardable, importc: "wrefresh", dynlib: libncurses.}
proc wclear*(win: PWindow): int {.cdecl, discardable, importc: "wclear", dynlib: libncurses.}
proc mvwhline*(win: PWindow, rol, col: int, chType: char, n: int): int {.cdecl, discardable, importc: "whline", dynlib: libncurses.}
proc wmove*(win: PWindow, rol, col: int): int {.cdecl, discardable, importc: "wmove", dynlib: libncurses.}
#proc wprintw*(win: PWindow, str: cstring): int {.cdecl, discardable, importc: "wprintw", dynlib: libncurses.}
#proc mvwprintw*(win: PWindow, row, col: int, str: cstring): int {.cdecl, discardable, importc: "mvwprintw", dynlib: libncurses.}
#proc wgetch*(win: ptr window): int {.cdecl, discardable, importc: "wgetch", dynlib: libncurses.}
#proc wrefresh*(win: ptr window): int {.cdecl, discardable, importc: "wrefresh", dynlib: libncurses.}
proc wclear*(win: ptr window): int {.cdecl, discardable, importc: "wclear", dynlib: libncurses.}
proc mvwhline*(win: ptr window, rol, col: int, chType: char, n: int): int {.cdecl, discardable, importc: "whline", dynlib: libncurses.}
proc wmove*(win: ptr window, rol, col: int): int {.cdecl, discardable, importc: "wmove", dynlib: libncurses.}
#proc wprintw*(win: ptr window, str: cstring): int {.cdecl, discardable, importc: "wprintw", dynlib: libncurses.}
#proc mvwprintw*(win: ptr window, row, col: int, str: cstring): int {.cdecl, discardable, importc: "mvwprintw", dynlib: libncurses.}
proc box*(win: PWindow, vert_border, horiz_border: char): int {.cdecl, discardable, importc: "box", dynlib: libncurses.}
proc wborder*(win: PWindow, ls,rs,ts,bs,tl,tr,bl,br: char): int {.cdecl, discardable, importc: "wborder", dynlib: libncurses.}
proc box*(win: ptr window, vert_border, horiz_border: char): int {.cdecl, discardable, importc: "box", dynlib: libncurses.}
proc wborder*(win: ptr window, ls,rs,ts,bs,tl,tr,bl,br: char): int {.cdecl, discardable, importc: "wborder", dynlib: libncurses.}
proc init_pair*(n, f, b: int): int {.cdecl, discardable, importc: "init_pair", dynlib: libncurses.}
proc COLOR_PAIR*(n: int): int {.cdecl, discardable, importc: "COLOR_PAIR", dynlib: libncurses.}
proc wattron*(win: PWindow, attrs: int): int {.cdecl, discardable, importc: "wattron", dynlib: libncurses.}
proc wattroff*(win: PWindow, attrs: int): int {.cdecl, discardable, importc: "wattron", dynlib: libncurses.}
proc wattron*(win: ptr window, attrs: int): int {.cdecl, discardable, importc: "wattron", dynlib: libncurses.}
proc wattroff*(win: ptr window, attrs: int): int {.cdecl, discardable, importc: "wattron", dynlib: libncurses.}
const BLACK* = 0
const RED* = 1