@@ -18,10 +18,10 @@ class Writer
1818 @dept = 0
1919 @out = {n: 0}
2020
21- indent: => "\t"\ rep @dept
21+ indent: => "\t":: rep @dept
2222
2323 writeln: (text) => fast_push @out, "#{@indent!}#{text}"
24- writelines: (text) => @writeln line for line in text\ gmatch "[^\n]+"
24+ writelines: (text) => @writeln line for line in text:: gmatch "[^\n]+"
2525
2626 incr: => @dept += 1
2727 decr: => @dept -= 1
@@ -39,20 +39,20 @@ class Writer
3939searchpath_compat = (name, path) ->
4040 package.searchpath name, path if package.searchpath -- lua 5.2+
4141 sep = ";" -- lua 5.1 didnt have package.config
42- name = name\ gsub "%.", "/" -- a.b.c -> a/b/c
43- for path in path\ gmatch "[^;]+"
44- path = path\ gsub "?", name
42+ name = name:: gsub "%.", "/" -- a.b.c -> a/b/c
43+ for path in path:: gmatch "[^;]+"
44+ path = path:: gsub "?", name
4545 -- very janky cross platform check to see if the file exists
4646 -- this janky check also somehow accepts directories
4747 -- because they can be opened??
4848 fh = io.open path, "r"
4949 if fh?
50- fh\ close!
50+ fh:: close!
5151 return path
5252
53- package_path_with_different_extension = => package.path\ gsub "%.lua", ".#{@}"
53+ package_path_with_different_extension = => package.path:: gsub "%.lua", ".#{@}"
5454-- basically string:endswith
55- check_file_extension = (filename, ext) -> ext == filename\ sub -#ext
55+ check_file_extension = (filename, ext) -> ext == filename:: sub -#ext
5656replace_file_extension = (from_, to) => @gsub "%#{from_}$", to
5757
5858export helpers = {
@@ -115,7 +115,7 @@ export class Packer
115115
116116 extract_packages: (source) =>
117117 matches = {n: 0}
118- fast_push matches, match for match in source\ gmatch require_pattern
118+ fast_push matches, match for match in source:: gmatch require_pattern
119119 matches
120120
121121 include: (package_name, filename) =>
@@ -130,11 +130,11 @@ export class Packer
130130 plugin_index += 1
131131
132132 return if @loaded[package_name]? -- recursion
133- -- return unless filename\ match"%.lua$" -- not a lua file
133+ -- return unless filename:: match"%.lua$" -- not a lua file
134134 with fh = io.open filename, "r"
135135 error "file not found: #{filename}" unless fh?
136- @loaded[package_name] = \ read"*a"
137- \ close!
136+ @loaded[package_name] = :: read"*a"
137+ :: close!
138138
139139 -- post process
140140 for plugin in *plugins
@@ -143,7 +143,7 @@ export class Packer
143143 @loaded[package_name] = new_content if new_content
144144 filename = filename if new_filename
145145
146- return if "-- luapacked" == @loaded[package_name]\ sub 1, 12 -- dont pack dependencies of a packed file
146+ return if "-- luapacked" == @loaded[package_name]:: sub 1, 12 -- dont pack dependencies of a packed file
147147
148148 @include dependency for dependency in *@extract_packages @loaded[package_name]
149149
@@ -162,66 +162,66 @@ export class Packer
162162 writer = Writer!
163163 if @options.compat_arg != false
164164 for package_name, content in pairs @loaded
165- if content\ match "%.%.%."
166- writer\ writeln "local __luapack_arg__ = arg"
165+ if content:: match "%.%.%."
166+ writer:: writeln "local __luapack_arg__ = arg"
167167 break
168168
169169 if @options.package_polyfill
170- writer\ writeln "if not package then _G.package = {preload = {}, loaded = {}} end"
171- writer\ writeln "if not package.preload then package.preload = {} end"
172- writer\ writeln "if not package.loaded then package.loaded = {} end"
173- writer\ writeln "if not require then"
174- writer\ endwrap ->
175- writer\ writeln "local sentinel = {}" -- recursion detection
176- writer\ writeln "_G.require = function(modname)"
177- writer\ endwrap ->
178- writer\ writeln "if package.loaded[modname] == sentinel then"
179- writer\ endwrap ->
180- writer\ writeln 'error(("loop or previous error loading module %q"):format(modname), 0)'
181- writer\ writeln "if package.loaded[modname] ~= nil then return package.loaded[name] end"
182- writer\ writeln "if not package.preload[modname] then"
183- writer\ endwrap ->
184- writer\ writeln 'error(("module not found %q"):format(modname), 2)'
185- writer\ writeln "package.loaded[modname] = sentinel"
186- writer\ writeln 'local success, result = pcall(package.preload[modname], modname, ":preload:")'
187- writer\ writeln "if not success then"
188- writer\ endwrap ->
189- writer\ writeln "package.loaded[modname] = nil" -- so it can be loaded again
190- writer\ writeln "error(result)" -- rethrow error
191- writer\ writeln "if result == nil then result = true end"
192- writer\ writeln "package.loaded[modname] = result"
193- writer\ writeln 'return result, ":preload:"'
170+ writer:: writeln "if not package then _G.package = {preload = {}, loaded = {}} end"
171+ writer:: writeln "if not package.preload then package.preload = {} end"
172+ writer:: writeln "if not package.loaded then package.loaded = {} end"
173+ writer:: writeln "if not require then"
174+ writer:: endwrap ->
175+ writer:: writeln "local sentinel = {}" -- recursion detection
176+ writer:: writeln "_G.require = function(modname)"
177+ writer:: endwrap ->
178+ writer:: writeln "if package.loaded[modname] == sentinel then"
179+ writer:: endwrap ->
180+ writer:: writeln 'error(("loop or previous error loading module %q"):format(modname), 0)'
181+ writer:: writeln "if package.loaded[modname] ~= nil then return package.loaded[name] end"
182+ writer:: writeln "if not package.preload[modname] then"
183+ writer:: endwrap ->
184+ writer:: writeln 'error(("module not found %q"):format(modname), 2)'
185+ writer:: writeln "package.loaded[modname] = sentinel"
186+ writer:: writeln 'local success, result = pcall(package.preload[modname], modname, ":preload:")'
187+ writer:: writeln "if not success then"
188+ writer:: endwrap ->
189+ writer:: writeln "package.loaded[modname] = nil" -- so it can be loaded again
190+ writer:: writeln "error(result)" -- rethrow error
191+ writer:: writeln "if result == nil then result = true end"
192+ writer:: writeln "package.loaded[modname] = result"
193+ writer:: writeln 'return result, ":preload:"'
194194
195195 already_loaded = {}
196196 for package_name, content in pairs @loaded
197197 if already_loaded[content]
198- writer\ writeln "package.preload[%q] = package.preload[%q]"\ format package_name, already_loaded[content]
198+ writer:: writeln "package.preload[%q] = package.preload[%q]":: format package_name, already_loaded[content]
199199 else
200- writer\ writeln "package.preload[%q] = function(...)"\ format package_name
201- writer\ endwrap ->
202- if @options.compat_arg != false and content\ match "%.%.%."
203- writer\ writeln "local arg = __luapack_arg__"
204- writer\ writelines content
200+ writer:: writeln "package.preload[%q] = function(...)":: format package_name
201+ writer:: endwrap ->
202+ if @options.compat_arg != false and content:: match "%.%.%."
203+ writer:: writeln "local arg = __luapack_arg__"
204+ writer:: writelines content
205205 already_loaded[content] = package_name
206206 if @options.clear_loaded != false
207- writer\ writeln "package.loaded[%q] = nil"\ format package_name
207+ writer:: writeln "package.loaded[%q] = nil":: format package_name
208208
209209 if @loaded["__luapack_entry__"]?
210210 -- some C functions may return "fake" nil which behave differently
211211 -- returning it crashes some environments
212212 -- assigning it to a variable fixes the issue
213213 -- TODO: do we need the `do` block?
214- writer\ writeln "do"
215- writer\ endwrap ->
216- writer\ writeln 'local _result = package.preload["__luapack_entry__"](...)'
217- writer\ writeln "return _result"
218- writer\ str!
214+ writer:: writeln "do"
215+ writer:: endwrap ->
216+ writer:: writeln 'local _result = package.preload["__luapack_entry__"](...)'
217+ writer:: writeln "return _result"
218+ writer:: str!
219219
220220-- cli
221221cli = (arguments) ->
222222 options = {}
223223 for arg in *arguments
224- continue if "-" != arg\ sub 1, 1
224+ continue if "-" != arg:: sub 1, 1
225225 switch arg
226226 when "-no-header" then options.with_header = false
227227 when "-yes-header" then options.with_header = true
@@ -233,16 +233,16 @@ cli = (arguments) ->
233233 print "Using luapack #{__version__}"
234234 print!
235235 for filename in *arguments
236- continue if "-" == filename\ sub 1, 1
236+ continue if "-" == filename:: sub 1, 1
237237 print "Packing #{filename}"
238238 packer = Packer options
239- packed = packer\ pack filename
240- outfile = filename\ gsub "%.(%a+)$", (x) -> ".packed.lua"
239+ packed = packer:: pack filename
240+ outfile = filename:: gsub "%.(%a+)$", (x) -> ".packed.lua"
241241 print "Packed into #{outfile}"
242242 break if filename == outfile
243243 with io.open outfile, "w"
244- \ write packed
245- \ close!
244+ :: write packed
245+ :: close!
246246
247247
248248check_cli = =>
0 commit comments