Come aggiungere un custom task a setup.py

Per avere questo comportamento:
 $ python setup.py foo
 running foo
 foo ... foo ... foo!
Si fa così:
from setuptools import setup, Command                                          
                                                                               
def main():                                                                    
    setup(                                                                     
        cmdclass={'foo':FooCommand}                                            
    )                                                                          
                                                                               
class FooCommand(Command):                                                                                                                                                    
    description="Does foo-ish things."                                         
    user_options=[]                                                            
    def initialize_options(self): pass                                         
    def finalize_options(self): pass                                           
    def run(self): print("foo ... foo ... foo!")                               
                                                                               
main()