e47eaae2e4
Previous change fixed the old dumpfile vs. new dumpfile check, but removed an existing (but flawled) old Zim fpath vs. new Zim fpath check. We should be doing both checks the right way now.
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
<%
|
|
class Zim
|
|
attr_reader :version, :home, :min_zsh_version, :url_regex,
|
|
:clear_line, :ellipsis, :okay, :warn, :error, :done, :failed
|
|
|
|
def initialize
|
|
@version = "1.11.2-SNAPSHOT"
|
|
@home = "${ZDOTDIR:-${HOME}}"
|
|
@min_zsh_version = "5.2"
|
|
# Matches {ssh,http,https,git}://{user@,}host/org/repo and {user@,}host:org/repo
|
|
# but not file:///path/to/repo or /path/to/repo
|
|
# ${match[3]} contains host, and ${match[4]} contains org/repo
|
|
@url_regex = "^([^:@/]+://)?([^@]+@)?([^:/]+)[:/]([^/]+/[^/]+)/?$"
|
|
@clear_line = "$'\\E[2K\\r'"
|
|
@ellipsis = " ..."
|
|
@okay = "%F{green})%f "
|
|
@warn = "! "
|
|
@error = "x "
|
|
@done = ""
|
|
@failed = ""
|
|
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_commented(filename)
|
|
render(filename).gsub(/^(?=.)/, "# ").gsub(/^$/, "#")
|
|
end
|
|
|
|
def render_escaped(filename)
|
|
render(filename).gsub(/(?=\$[^']|"|`)/, "\\\\").gsub(/#\{/, "$\{")
|
|
end
|
|
|
|
def render_tools(pattern, var)
|
|
Dir[pattern].sort.map { |filename|
|
|
" #{File.basename(filename, ".zsh.erb")}) #{var}=\"#{render_escaped(filename)}\" ;;"
|
|
}.join("\n")
|
|
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/stage2/*.erb") %>
|
|
if [[ ${functrace[1]} == zmodule:* ]]; then
|
|
zmodule "${@}"
|
|
else
|
|
zimfw "${@}"
|
|
fi
|