use mixlib-shellout instead of popen to 1) return user readable output; 2) handle the errors