summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb')
-rw-r--r--Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb b/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb
new file mode 100644
index 00000000000..6fa8c8601a9
--- /dev/null
+++ b/Master/texmf-dist/scripts/context/ruby/base/kpsedirect.rb
@@ -0,0 +1,34 @@
+class KpseDirect
+
+ attr_accessor :progname, :format, :engine
+
+ def initialize
+ @progname, @format, @engine = '', '', ''
+ end
+
+ def expand_path(str)
+ clean_name(`kpsewhich -expand-path=#{str}`.chomp)
+ end
+
+ def expand_var(str)
+ clean_name(`kpsewhich -expand-var=#{str}`.chomp)
+ end
+
+ def find_file(str)
+ clean_name(`kpsewhich #{_progname_} #{_format_} #{str}`.chomp)
+ end
+
+ def _progname_
+ if @progname.empty? then '' else "-progname=#{@progname}" end
+ end
+ def _format_
+ if @format.empty? then '' else "-format=\"#{@format}\"" end
+ end
+
+ private
+
+ def clean_name(str)
+ str.gsub(/\\/,'/')
+ end
+
+end