module Dyndoc

begin
  require 'redcloth'
rescue LoadError
  Dyndoc.warn "Warning: RedCloth not installed or supported!"
end

require 'pandoc-ruby'

Constants

SOFTWARE

Public Class Methods

R() click to toggle source
# File lib/dyndoc-software.rb, line 109
def self.R
  SOFTWARE[:R]
end
bash(bash_path=nil) click to toggle source
# File lib/dyndoc-software.rb, line 101
def self.bash(bash_path=nil)
  if bash_path # Needs to be in the PATH
    return bash_path
  else
    SOFTWARE[:bash]
  end
end
mingw32_software?() click to toggle source
# File lib/dyndoc-software.rb, line 5
def self.mingw32_software?
  RUBY_PLATFORM=~/mingw32/
end
pdflatex() click to toggle source
# File lib/dyndoc-software.rb, line 92
def self.pdflatex
  # this has to be initialized each time you need pdflatex since TEXINPUTS could change!
  if ENV['TEXINPUTS']
    "env TEXINPUTS=#{ENV['TEXINPUTS']}" + (self.mingw32_software? ? "; " : " ") + SOFTWARE[:pdflatex]
  else
    SOFTWARE[:pdflatex]
  end
end
scoop_install?() click to toggle source
# File lib/dyndoc-software.rb, line 9
def self.scoop_install?
  self.mingw32_software? and !(`where scoop`.strip.empty?)
end
software() click to toggle source
# File lib/dyndoc-software.rb, line 84
def self.software
  SOFTWARE
end
software?(software) click to toggle source
# File lib/dyndoc-software.rb, line 88
def self.software?(software)
  software - SOFTWARE.keys
end
software_init(force=false) click to toggle source
# File lib/dyndoc-software.rb, line 13
def self.software_init(force=false)

  unless SOFTWARE[:R]
    if self.mingw32_software?
      cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","R.exe")]
      SOFTWARE[:R]=cmd[0] unless cmd.empty?
    else
      cmd=`type "R"`
      SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:Rscript]
    if self.mingw32_software?
      cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","Rscript.exe")]
      SOFTWARE[:Rscript]=cmd[0] unless cmd.empty?
    else
      cmd=`type "Rscript"`
      SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:ruby]
    cmd=`type "ruby"`
    SOFTWARE[:ruby]=cmd.strip.split(" ")[2] unless cmd.empty?
  end

  unless SOFTWARE[:pdflatex]
    cmd=`type "pdflatex"`
    if RUBY_PLATFORM =~ /msys/
      SOFTWARE[:pdflatex]="pdflatex"
    else
      SOFTWARE[:pdflatex]=cmd.empty? ? "pdflatex" : cmd.strip.split(" ")[2]
    end
  end

  unless SOFTWARE[:pandoc]
    if File.exist? File.join(ENV["HOME"],".cabal","bin","pandoc")
      SOFTWARE[:pandoc]=File.join(ENV["HOME"],".cabal","bin","pandoc")
    else
      begin
        cmd = `which pandoc`.strip
      rescue
        cmd = "pandoc"
      end
      SOFTWARE[:pandoc]=cmd unless cmd.empty?
      #cmd=`type "pandoc"`
      #SOFTWARE[:pandoc]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:ttm]
    cmd=`type "ttm"`
    SOFTWARE[:ttm]=cmd.strip.split(" ")[2] unless cmd.empty?
  end

  unless SOFTWARE[:bash]
    if self.scoop_install?
      bash_path=File.expand_path('../../bin/bash.exe',`scoop which git`)
      if File.exist? bash_path
        bash_path
      else # Needs to be in the PATH
        "bash"
      end
    else
      "/bin/bash"
    end
  end

end
which_path(bin) click to toggle source
# File lib/dyndoc-converter.rb, line 13
def Dyndoc.which_path(bin)
  begin
    cmd=`which #{bin}`.strip
    cmd=DyndocMsys2.global_path_msys2mingw(cmd) if RUBY_PLATFORM =~ /mingw/
  rescue
    cmd=bin
  end
  return cmd
end