Update setup.py
--print flag support, along with some refactoring
Disallow arguments after -- when --print is present
Add explicit -r/--run flag