Sha256: 2347c1698f5fd468025a68c5d101bf26252263388e32f19e979d466fd6ad6ed9

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

LEXT = ".lt3"

def stale?(src, dst, force = false)
  meh = File.new("/tmp/dammit-#{src.gsub(/\//, "-")}", "w")
  log!(enter: __method__, args: [src, dst], level: 3)
  raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
  return true if force
  return true unless File.exist?(dst)
  return true if File.mtime(src) > File.mtime(dst)
  return false
end

def xlate(cwd: Dir.pwd, src:, 
          dst: (strip = true; src.sub(/.lt3$/,"")), 
          copy: nil, debug: false, force: false)
  src += LEXT unless src.end_with?(LEXT)
  dst += ".html" unless dst.end_with?(".html") || strip
  indent = " "*12
  Dir.chdir(cwd) do
    if debug
      STDERR.puts "#{indent} -- xlate #{src} >#{dst}"
      STDERR.puts "#{indent}      in:   #{Dir.pwd}"
      STDERR.puts "#{indent}      from: #{caller[0]}"
      STDERR.puts "#{indent}      copy: #{copy}" if copy
    end
    stale = stale?(src, dst, force)
    if stale
      rc = system("livetext #{src} >#{dst}")
      STDERR.puts "...completed (shell returned #{rc})" if debug
      system!("cp #{dst} #{copy}") if copy
    else
      STDERR.puts "#{indent} -- ^ Already up to date!" if debug
      return
    end
  end
end

def xlate!(cwd: Dir.pwd, src:, copy: nil, debug: false, force: false)
  output = "/tmp/xlate-#{File.basename(src).sub(/.lt3$/, "")}"
  xlate cwd: cwd, src: src, dst: output, debug: debug, force: force
  File.read(output + ".html")  # return all content as string
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
runeblog-0.2.50 lib/xlate.rb
runeblog-0.2.49 lib/xlate.rb
runeblog-0.2.48 lib/xlate.rb