A Python class to handle executing system commands using sudo
Project description
configure_with_sudo
Description
A Python module to handle executing system commands using sudo.
Usage
Extend GenericConfigure
, setting at a minimum an appropriate argv
command & argument list.
Example
The following class will check if pip
is installed and, if not, install it system-wide using sudo easy_install pip
:
from configure_with_sudo import GenericConfigure
class InstallPip(GenericConfigure):
def __init__(self, kill_sudo_cred=True):
# Initial argv is simply to check if 'pip' is installed
argv = ["/usr/local/bin/pip", "-V"]
super(InstallPip, self).__init__(
argv, use_sudo=True, kill_sudo_cred=kill_sudo_cred)
try:
# Execute to check if pip is already installed
# if it is, self.configured will be set to True
# and subsequent calls to execute() will do nothing
self.execute(use_sudo=False)
except Exception:
# If pip -V failed, assume pip is not installed.
# Replace self.argv with the installation command.
self.argv = ["/usr/bin/easy_install", "pip"]
pip_installer = InstallPip()
pip_installer.execute()
The following example will capture the output of sudo ls -l /private/var/root
, and print it line-by-line:
class DirectoryLister(GenericConfigure):
def __init__(self, path):
argv = ["ls", "-l", path]
super().__init__(argv, use_sudo=True)
path = "/private/var/root"
lister = DirectoryLister(path)
output = lister.execute(return_output=True)
for line in output:
print(line)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for configure_with_sudo-0.1.0.dev5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 501853c9475cc9c4b9a5ac6d1a8f8e5232aaece76c693bb4992cb05d514fa372 |
|
MD5 | 1ce495716490e85e348c6c33e954389a |
|
BLAKE2b-256 | 52c486227fc678900531ed896ed48ff5829290082270a35bd3bcdb774ab69d16 |
Close
Hashes for configure_with_sudo-0.1.0.dev5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8bbe99f65fc433847b2200759bd6f8a3c8fc277963844cb885f28b0c0499970 |
|
MD5 | 4066ceffd160adcea31af58e6433d2dd |
|
BLAKE2b-256 | d617e3245178c639a3211c67e09f35dec2df61eb418c226abe9a288fc38de8ea |