diff options
| author | Omar Rizwan <omar@omar.website> | 2022-07-21 20:03:39 +0000 |
|---|---|---|
| committer | Omar Rizwan <omar@omar.website> | 2022-07-22 16:17:29 +0000 |
| commit | 60e22472eeb1c6ca0e03c5df8cd16b4552b87e81 (patch) | |
| tree | ac5f0bdfbf3a5a22da628f4dd371859f35121e91 /virtual-programs | |
| parent | next-id.txt (diff) | |
| download | folk-60e22472eeb1c6ca0e03c5df8cd16b4552b87e81.tar.gz folk-60e22472eeb1c6ca0e03c5df8cd16b4552b87e81.zip | |
more work on print.folk
Diffstat (limited to 'virtual-programs')
| -rw-r--r-- | virtual-programs/print.folk | 34 |
1 files changed, 32 insertions, 2 deletions
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" } |
