isPrivilegedPasswordRequired property

bool get isPrivilegedPasswordRequired

Returns true if running a privileged action would cause a password to be requested.

Linux/MacOS: will return true if the sudo password is not currently cached and we are not already running as a privileged user.

Windows: This will always return false as Windows is never able to escalate privileges.

Implementation

bool get isPrivilegedPasswordRequired {
  if (isPrivilegedUser) {
    return false;
  }
  final response = 'sudo -nv'.toList(nothrow: true);

  if (response.isEmpty) {
    return false;
  }
  final first = response.first;
  return first == 'sudo: a password is required' ||
      first == 'sudo-rs: interactive authentication is required';
}