(List (FunctionDef _hash [] (Com {[LIT_CHARS echo]} {[VarSub $] [LIT_CHARS .] [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [SQ ]})] [LIT_CHARS .] [VarSub RANDOM]}) ) (FunctionDef balls::server [] (List (Com {[LIT_CHARS balls] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS load_app]}) (= scope= flags=0 words=[] bindings=[('http_sock', {[VarSub BALLS_TMP] [LIT_CHARS /balls.http.] [VarSub $] [LIT_CHARS .sock]})]) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -p]} {[VarSub http_sock]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS mkfifo]} {[VarSub http_sock]}) ) (While (Com {[LIT_CHARS true]}) (Pipeline (Com {[LIT_CHARS cat]} {[VarSub http_sock]}) (Com {[LIT_CHARS nc]} {[LIT_CHARS -l]} {[LIT_CHARS -p]} {[VarSub BALLS_PORT]}) (Subshell (List (Com {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS parse_request]}) (Com {[LIT_CHARS balls] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS route]} < (FilenameRedirectNode filename={[VarSub http_sock]} "> 1), > ) ) ) ) ) ) ) (FunctionDef cleanup [] (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub headers_sock]]} {[DQ [VarSub http_sock]]}) ) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS INT]}) (FunctionDef balls::load_app [] (Com {[LIT_CHARS .]} {[VarSub BALLS_ACTIONS] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .sh]}) ) )