Compare commits

...

5 commits

Author SHA1 Message Date
c344266975 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/e2d0b0171ddf364b687d091ee603d0c3a7079166' (2024-09-17)
  → 'github:nix-community/nixpkgs-wayland/0e4800bea63d6e60d1917c934ad7c5bba935d345' (2024-09-17)
• Updated input 'zig-overlay':
    'github:mitchellh/zig-overlay/a2f15c93b689b31044d5604fb0cd5bac818daf01' (2024-09-17)
  → 'github:mitchellh/zig-overlay/04a63b5774dc3f9d5be373b03f4e461fe3b7d9d2' (2024-09-18)
2024-09-18 00:35:57 +00:00
7c755099ef
bbansi was consumed by hwylterm 2024-09-17 18:56:51 -05:00
82cbff556e
syntax? 2024-09-17 16:27:00 -05:00
1c32119e0b
add missing newline 2024-09-17 16:09:04 -05:00
477a9cec89
add python to ignore 2024-09-17 16:09:04 -05:00
14 changed files with 27 additions and 163 deletions

View file

@ -130,7 +130,7 @@ jobs:
- run: |
echo "# System Diff" >> $GITHUB_STEP_SUMMARY
nix run "nixpkgs#nvd" -- --color always diff ./current ./updated >> summary.md
printf '```\n%s```\n' "$(nix run "nixpkgs#nvd" -- diff ./current ./updated)" >> $GITHUB_STEP_SUMMARY
printf '```\n%s\n```\n' "$(nix run "nixpkgs#nvd" -- diff ./current ./updated)" >> $GITHUB_STEP_SUMMARY
- run: df -h

View file

@ -744,11 +744,11 @@
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1726604396,
"narHash": "sha256-N96NVHAYUxK4L7uaeKi45a+v61VIpimzHyQsKctBpb4=",
"lastModified": 1726608298,
"narHash": "sha256-jnkrX5WjYDRh6kYHHmf0mjOSiJNtrqDI/h2coistP7w=",
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"rev": "e2d0b0171ddf364b687d091ee603d0c3a7079166",
"rev": "0e4800bea63d6e60d1917c934ad7c5bba935d345",
"type": "github"
},
"original": {
@ -1184,11 +1184,11 @@
]
},
"locked": {
"lastModified": 1726575046,
"narHash": "sha256-XD2qJ30wTLUz7BOXVz1wY/q+RJBvI7f6ksGJrYMbFAg=",
"lastModified": 1726619268,
"narHash": "sha256-YlVh/GZX/BA33RlkFRm3WZESFnVP0EXVLc/goXVYKVY=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "a2f15c93b689b31044d5604fb0cd5bac818daf01",
"rev": "04a63b5774dc3f9d5be373b03f4e461fe3b7d9d2",
"type": "github"
},
"original": {

View file

@ -36,7 +36,7 @@
"vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200"
];
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_latest;
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.tmp.cleanOnBoot = true;
boot.loader = {
systemd-boot = enabled // {

View file

@ -8,5 +8,5 @@ buildNimblePackage {
verions = "unstable";
src = lib.cleanSource ./.;
nativeBuildInputs = [ openssl ];
nimbleDepsHash = "sha256-WeTbNoF+TuzWriqoHWk5DBVgBXtNBIBHMkwy8/+a2JA=";
nimbleDepsHash = "sha256-U44sZSUcus9minOs/Euy4h071eU9Cn83RnYb5jiKibo=";
}

View file

@ -1,16 +1,6 @@
{
"version": 2,
"packages": {
"bbansi": {
"version": "0.1.1",
"vcsRevision": "9a85d9ed028f06f1ed1ee6851480a51408a6004e",
"url": "https://github.com/daylinmorgan/bbansi",
"downloadMethod": "git",
"dependencies": [],
"checksums": {
"sha1": "b338433f9a7a1b788b7583674c2b14096ced29ee"
}
},
"cligen": {
"version": "1.7.0",
"vcsRevision": "4193f802796f15559c81c6dd56724d6f20345917",
@ -21,6 +11,16 @@
"sha1": "300bd7fdb6e48d2d98e34ed0661206b50331e99c"
}
},
"hwylterm": {
"version": "0.1.0",
"vcsRevision": "f743d4b2dc93e41d0e8b5bb0a3e5f26ffc2534e1",
"url": "https://github.com/daylinmorgan/hwylterm",
"downloadMethod": "git",
"dependencies": [],
"checksums": {
"sha1": "5a5e00533d5cf2660872738cabf8b7572128b05b"
}
},
"jsony": {
"version": "1.1.5",
"vcsRevision": "ea811bec7fa50f5abd3088ba94cda74285e93f18",

View file

@ -14,4 +14,4 @@ requires "nim >= 2.0.8"
requires "cligen"
requires "jsony"
requires "zippy"
requires "https://github.com/daylinmorgan/bbansi#9a85d9e"
requires "https://github.com/daylinmorgan/hwylterm#HEAD"

View file

@ -1,7 +1,7 @@
## nix begat oizys
import std/[os, tables, sequtils, strformat,strutils]
import cligen, bbansi
import cligen, hwylterm
import oizys/[context, github, nix, overlay, logging]

View file

@ -1,6 +1,6 @@
import std/[logging, os, strformat, strutils]
from std/nativesockets import getHostname
import bbansi
import hwylterm
import ./logging
type

View file

@ -3,7 +3,7 @@ import std/[
strutils, streams, logging
]
import ./spin
import hwylterm
func addArgs*(cmd: var string, args: openArray[string]) =

View file

@ -1,5 +1,5 @@
import std/[httpclient,logging, os, strformat, strutils, json, tables, tempfiles]
import jsony, bbansi, zippy/ziparchives
import jsony, hwylterm, zippy/ziparchives
import ./[logging, exec, context]
# localPassC is used by zippy but the additional

View file

@ -22,3 +22,4 @@ code
direnv
comma-with-db
nix-index-with-db
python

View file

@ -1,7 +1,7 @@
import std/[logging,strutils]
export logging
import bbansi
import hwylterm
var
handlers {.threadvar.}: seq[Logger]

View file

@ -3,7 +3,7 @@ import std/[
enumerate, os, sequtils, strformat,
strutils, sugar, logging, tables
]
import bbansi, jsony
import hwylterm, jsony
import ./[context, exec, logging]

View file

@ -1,137 +0,0 @@
import std/[os, locks, sequtils, terminal]
import bbansi
type
SpinnerKind* = enum
Dots
Spinner* = object
interval*: int
frames*: seq[string]
proc makeSpinner*(interval: int, frames: seq[string]): Spinner =
Spinner(interval: interval, frames: frames)
const Spinners*: array[SpinnerKind, Spinner] = [
# Dots
Spinner(interval: 80, frames: @["","","","","","","","","",""]),
]
type
Spinny = ref object
t: Thread[Spinny]
lock: Lock
text: string
running: bool
frames: seq[string]
frame: string
interval: int
customSymbol: bool
style: string
EventKind = enum
Stop, SymbolChange, TextChange,
SpinnyEvent = object
kind: EventKind
payload: string
var spinnyChannel: Channel[SpinnyEvent]
proc newSpinny*(text: string, s: Spinner): Spinny =
let style = "bold blue"
Spinny(
text: text,
running: true,
frames: mapIt(s.frames, $bb(it, style)),
customSymbol: false,
interval: s.interval,
style: "bold blue"
)
proc newSpinny*(text: string, spinType: SpinnerKind): Spinny =
newSpinny(text, Spinners[spinType])
proc setSymbolColor*(spinny: Spinny, style: string) =
spinny.frames = mapIt(spinny.frames, $bb(it, style))
proc setSymbol*(spinny: Spinny, symbol: string) =
spinnyChannel.send(SpinnyEvent(kind: SymbolChange, payload: symbol))
proc setText*(spinny: Spinny, text: string) =
spinnyChannel.send(SpinnyEvent(kind: TextChange, payload: text))
proc handleEvent(spinny: Spinny, eventData: SpinnyEvent): bool =
result = true
case eventData.kind
of Stop:
result = false
of SymbolChange:
spinny.customSymbol = true
spinny.frame = eventData.payload
of TextChange:
spinny.text = eventData.payload
proc spinnyLoop(spinny: Spinny) {.thread.} =
var frameCounter = 0
while spinny.running:
let data = spinnyChannel.tryRecv()
if data.dataAvailable:
# If we received a Stop event
if not spinny.handleEvent(data.msg):
spinnyChannel.close()
# This is required so we can reopen the same channel more than once
# See https://github.com/nim-lang/Nim/issues/6369
spinnyChannel = default(typeof(spinnyChannel))
# TODO: Do we need spinny.running at all?
spinny.running = false
break
stdout.flushFile()
if not spinny.customSymbol:
spinny.frame = spinny.frames[frameCounter]
withLock spinny.lock:
eraseLine()
stdout.write(spinny.frame & " " & spinny.text)
stdout.flushFile()
sleep spinny.interval
if frameCounter >= spinny.frames.len - 1:
frameCounter = 0
else:
frameCounter += 1
proc start*(spinny: Spinny) =
initLock spinny.lock
spinnyChannel.open()
createThread(spinny.t, spinnyLoop, spinny)
proc stop(spinny: Spinny, kind: EventKind, payload = "") =
spinnyChannel.send(SpinnyEvent(kind: kind, payload: payload))
spinnyChannel.send(SpinnyEvent(kind: Stop))
joinThread spinny.t
eraseLine stdout
flushFile stdout
proc stop*(spinny: Spinny) =
spinny.stop(Stop)
template withSpinner*(msg: string = "", body: untyped): untyped =
var spinner {.inject.} = newSpinny(msg, Dots)
if isatty(stdout): # don't spin if it's not a tty
start spinner
body
if isatty(stdout):
stop spinner
template withSpinner*(body: untyped): untyped =
withSpinner("", body)