cffd456556
and rename previous to git. Tools allow for different install and update scripts. The git tool does what the previous implementation did (installs and updates using the git client). The new tool installs and updates with the GitHub API, not using the git client, but using curl/wget and tar instead. Closes #373
53 lines
1.5 KiB
Plaintext
53 lines
1.5 KiB
Plaintext
<%
|
|
class Zim
|
|
attr_reader :version, :home, :min_zsh_version, :startup_files_glob, :url_regex,
|
|
:clear_line, :ellipsis, :okay, :warn, :error, :done, :failed
|
|
|
|
def initialize
|
|
@version = "1.5.0-SNAPSHOT"
|
|
@home = "${ZDOTDIR:-${HOME}}"
|
|
@min_zsh_version = "5.2"
|
|
@startup_files_glob = ".z(shenv|profile|shrc|login|logout)"
|
|
# 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") %>
|
|
zimfw "${@}"
|