@@ -197,6 +197,8 @@ func play(ctx context.Context, holeID, langID, code string, score *Scorecard) {
197197
198198 cmd .Args = []string {"/usr/bin/defasm" , "--size-out=3" , "-w" , "-r" }
199199 cmd .ExtraFiles = []* os.File {asmBytesWrite }
200+ case "awk" :
201+ cmd .Args = []string {"/usr/bin/gawk" , "-v" , "RS=\\ 0" , code }
200202 case "bash" :
201203 cmd .Args = []string {"/usr/bin/bash" , "-s" , "-" }
202204 case "brainfuck" :
@@ -263,7 +265,8 @@ func play(ctx context.Context, holeID, langID, code string, score *Scorecard) {
263265
264266 // Args
265267 switch langID {
266- case "brainfuck" , "fish" :
268+ case "awk" , "brainfuck" , "fish" :
269+ // Hole args passed through stdin for these langs separated by a null byte
267270 args := ""
268271 for _ , arg := range score .Args {
269272 args += arg + "\x00 "
@@ -279,8 +282,8 @@ func play(ctx context.Context, holeID, langID, code string, score *Scorecard) {
279282
280283 // Code
281284 switch langID {
282- case "brainfuck" , "elixir" , "fish" , "golfscript" , "javascript" , "perl" , "sed" :
283- // For these code is passed as an argument above.
285+ case "awk" , " brainfuck" , "elixir" , "fish" , "golfscript" , "javascript" , "perl" , "sed" :
286+ // For these langs, code is passed as an argument above.
284287 case "k" :
285288 code = preprocessKCode (holeID , code )
286289 cmd .Stdin = strings .NewReader (code )
0 commit comments