Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Wow. I was wondering how the hell TickTick.sh "extended" the bash interpreter grammar, because there is no obvious way to do that. The key is on lines 171-189:

    awk -F '``' '{\
    
      # ... jibbery awk-ese ...
    
    }' `caller 1 | cut -d ' ' -f 3` | sed "s/^/S/g;s/$/E/g" | __tick_fun_parse | bash

    exit
So what this is doing, by Jove, is using the "caller" bash builtin + "cut" to print out the filename of the currently executing script, pass that as an argument to awk, and use awk + sed + the "__tick_fun_parse" function to re-parse the script into something that can actually be executed by bash. The "exit" command then exits the current run-through of the script, because otherwise it will reach all the stuff that would normally cause a syntax error.

This is legit hax.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: