1if not modules then modules = { } end modules [ ' core-sys ' ] = {
2 version = 1 . 001 ,
3 comment = " companion to core-sys.mkiv " ,
4 author = " Hans Hagen, PRAGMA-ADE, Hasselt NL " ,
5 copyright = " PRAGMA ADE / ConTeXt Development Team " ,
6 license = " see context related readme files "
7}
8
9local lower , format , gsub = string . lower , string . format , string . gsub
10local suffixonly , basename , removesuffix = file . suffix , file . basename , file . removesuffix
11
12local environment = environment
13local context = context
14local implement = interfaces . implement
15
16local report_files = logs . reporter ( " system " , " files " )
17
18function environment . initializefilenames ( )
19
20 local arguments = environment . arguments
21
22 local jobname = arguments . jobname or tex . jobname
23 local fulljobname = arguments . fulljobname or jobname
24 local inputfilename = arguments . input or fulljobname
25 local outputfilename = arguments . result or removesuffix ( jobname )
26
27 local inputfilename = suffixonly ( inputfilename ) = = " tex " and removesuffix ( inputfilename ) or inputfilename or " "
28
29 local filename = fulljobname
30 local suffix = suffixonly ( filename )
31
32 local filename = ctxrunner . resolve ( filename )
33
34 local jobfilename = jobname or inputfilename or tex . jobname or " "
35 local inputfilename = inputfilename or " "
36
37 local jobfilebase = basename ( jobfilename )
38 local inputfilebase = basename ( inputfilename )
39
40
41
42
43 environment . jobfilefullname = fulljobname
44 environment . jobfilename = jobfilebase
45 environment . jobfilesuffix = lower ( suffixonly ( jobfilebase ) )
46
47 environment . inputfilename = inputfilename
48 environment . inputfilebarename = removesuffix ( inputfilebase )
49 environment . inputfilesuffix = lower ( suffixonly ( inputfilebase ) )
50
51 environment . outputfilename = outputfilename or environment . inputfilebarename or " "
52
53 environment . filename = filename
54 environment . suffix = suffix
55
56
57
58
59
60 report_files ( " jobname %a, input %a, result %a " , jobfilename , inputfilename , outputfilename )
61
62 function environment . initializefilenames ( ) end
63end
64
65
66
67implement { name = " operatingsystem " , actions = function ( ) context ( os . platform ) end }
68implement { name = " jobfilefullname " , actions = function ( ) context ( environment . jobfilefullname ) end }
69implement { name = " jobfilename " , actions = function ( ) context ( environment . jobfilename ) end }
70implement { name = " jobfilesuffix " , actions = function ( ) context ( environment . jobfilesuffix ) end }
71implement { name = " inputfilebarename " , actions = function ( ) context ( environment . inputfilebarename ) end }
72implement { name = " inputfilerealsuffix " , actions = function ( ) context ( environment . inputfilerealsuffix ) end }
73implement { name = " inputfilesuffix " , actions = function ( ) context ( environment . inputfilesuffix ) end }
74implement { name = " inputfilename " , actions = function ( ) context ( environment . inputfilename ) end }
75implement { name = " outputfilename " , actions = function ( ) context ( environment . outputfilename ) end }
76
77statistics . register ( " result saved in file " , function ( )
78
79 local outputfilename = environment . outputfilename or environment . jobname or tex . jobname or " <unset> "
80
81 return format ( " %s.%s, compresslevel %s, objectcompresslevel %s " , outputfilename , " pdf " ,
82 lpdf . getcompression ( )
83 )
84
85
86
87end )
88
89implement {
90 name = " systemlog " ,
91 arguments = " 3 strings " ,
92 actions = function ( whereto , category , text )
93 logs . system ( whereto , " context " , tex . jobname , category , text )
94 end ,
95}
96 |