Skip to content

Commit 8033b6e

Browse files
committed
Add filename enforcement check
1 parent 7b4e3ae commit 8033b6e

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

_assemble/check.coffee

+18-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
do main = -> setImmediate ->
22
easypathutil = require 'easypathutil'
3-
{ sep, basename, dirname } = require 'path'
3+
{ sep, basename, dirname, relative: rel } = require 'path'
44

55
replace = (str) -> str.replace /[|\\{}()[\]^$+*?.]/g, '\\$&'
66
startsep = new RegExp "^#{replace sep}"
@@ -20,15 +20,21 @@ do main = -> setImmediate ->
2020
.filter((e, i) -> !ignored.some (b) -> e.replace(base['honorary-one-line-wonders'](), '').replace(startsep, '').startsWith b)
2121
.length}#{bgblack} honorary programs in /honorary-one-line-wonders\nNow running checks...#{r}"
2222

23-
sorting = (for program in list when folder = dirname program
24-
Object.entries(categories).find (category) ->
25-
if category[1].test basename(program).toLowerCase() #.includes category[0]
26-
if not folder.split(sep).some (f) -> category[1].test f
27-
console.log program
28-
console.log category
29-
return true).filter (e) -> e
23+
sorting = (for [path, program, folder] in list.map (e) -> [e, basename(e), dirname(e)]
24+
if program[0] is '.'
25+
!1
26+
else unless program.includes '_'
27+
console.log cyan, 'Filename must be of the format username_file_name_here.extension', r, red, rel('.', path), r
28+
program
29+
else
30+
Object.entries(categories).find (category) ->
31+
if category[1].test program.toLowerCase() #.includes category[0]
32+
if not folder.split(sep).some (f) -> category[1].test f
33+
console.log cyan, 'Expected program to be in a folder:', r, red, rel('.', path), category, r
34+
return true
35+
).filter (e) -> e
3036
if sorting.length > 0
31-
console.log "#{bold}#{bgblack}#{sorting.length} one-line programs were possibly in the wrong directory. Please check the above output.#{r}"
37+
console.log "#{bold}#{bgred}#{sorting.length} one-line programs were possibly misnamed or in the wrong directory. Please check the above output.#{r}"
3238
process.exit 1
3339
else
3440
console.log "#{bggreen}Folder checks passed!#{r}"
@@ -39,6 +45,8 @@ bgblue = '\x1b[44m'
3945
bgblack = '\x1b[40m'
4046
bgred = '\x1b[41m'
4147
bggreen = '\x1b[42m'
48+
cyan = '\x1b[36m'
49+
red = '\x1b[31m'
4250

4351
categories =
4452
hello: /^hello([-_]?world)?$/i
@@ -52,3 +60,4 @@ categories =
5260
e: /approx(imate[_-]?)?e/i
5361
golden_ratio: /(approx(imate[_-]?)?)?(golden_ratio|phi)/i
5462
valley: /valley/i
63+
unique_elems: /unique/i

0 commit comments

Comments
 (0)