Remove not useful comments.
Improve extracting of path components by normalizing and checking paths.
Use logging instead of print. Improve extra handling by turning them into abspaths which makes logs more accurate.
Use name same help message style for every option.
Fix Python 2.6 compatibility.

CalledProcessError supports output argument starting from 2.7