I use a Mac with hugo, and have some zsh functions in my .zshrc file, to make my life easier.
I have a bunch of functions for running hugo server with different ports to keep the sites out of each other's hair. Then I have some functions for generating the sites and pushing to production.
The sample below is to make it easy to understand the gist (get it?). The ugly truth is here:
https://github.com/RickCogley/dotfiles/blob/master/zsh/zshrc