36 lines
912 B
Plaintext
36 lines
912 B
Plaintext
<%# coding: UTF-8 %><%
|
|
class Zim
|
|
attr_reader :home, :min_zsh_version, :script_filename, :second_stage_guard, :version
|
|
|
|
def initialize
|
|
@home = "${ZDOTDIR:-${HOME}}"
|
|
@min_zsh_version = "5.2"
|
|
@script_filename = "zimfw.zsh"
|
|
@version = "1.0.0-SNAPSHOT"
|
|
end
|
|
|
|
def render(filename)
|
|
ERB.new(File.read(filename)).result(binding)
|
|
end
|
|
|
|
def render_all(pattern)
|
|
Dir[pattern].sort.map { |filename| render(filename) }.join("\n")
|
|
end
|
|
|
|
def render_escaped(filename)
|
|
render(filename).gsub(/(\$[^']|"|`)/, "\\\\\\1")
|
|
end
|
|
|
|
def render_commented(filename)
|
|
render(filename).gsub(/^(?=.)/, "# ").gsub(/^$/, "#")
|
|
end
|
|
end
|
|
zim = Zim.new
|
|
%># AUTOMATICALLY GENERATED FILE. EDIT ONLY THE SOURCE FILES AND THEN COMPILE.
|
|
# DO NOT DIRECTLY EDIT THIS FILE!
|
|
|
|
<%= zim.render_commented("LICENSE") %>
|
|
<%= zim.render_all("src/stage1/*.erb") %>
|
|
<%= zim.render_all("src/stage2/*.erb") %>
|
|
zimfw "${@}"
|