Add run function definition
Add usage function definition
Use getopt for parsing command line option
Handle mode which depends on command line option
Rewrite getopt based case ... esac