From 60e22472eeb1c6ca0e03c5df8cd16b4552b87e81 Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Thu, 21 Jul 2022 16:03:39 -0400 Subject: more work on print.folk --- virtual-programs/print.folk | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'virtual-programs') diff --git a/virtual-programs/print.folk b/virtual-programs/print.folk index f620cde6..6af8a032 100644 --- a/virtual-programs/print.folk +++ b/virtual-programs/print.folk @@ -72,8 +72,38 @@ $image }] } +proc nextId {} { + set fp [open "programs/next-id.txt" r] + set id [string trim [read $fp]] + close $fp + + set fp [open "programs/next-id.txt" w] + puts $fp [expr {$id + 1}] + close $fp + + return $id +} + +if {![info exists ::printjobs]} {set ::printjobs [dict create]} When /someone/ wishes to print /code/ with job id /jobid/ { - # if the job isn't already sent in ::printjobs - # convert code to PostScript + # if the job was already dispatched + if {[dict get $::printjobs $jobid]} {return} + dict set ::printjobs $jobid true + + set id [nextId] + + set ps [programToPs $id $code] + + # save code and ps to disk + set fp [open "programs/$id.folk" w] + puts $fp $code + close $fp + + set fp [open "printed-programs/$id.ps" w] + puts $fp $ps + close $fp + # send PostScript to printer + # TODO: test on pi + exec "lpr printed-programs/$id.ps" } -- cgit v1.2.3