Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

configure_with_sudo-0.1.1.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

configure_with_sudo-0.1.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file configure_with_sudo-0.1.1.tar.gz.

File metadata

  • Download URL: configure_with_sudo-0.1.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for configure_with_sudo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 134fbd70a40a2dce9337d84adc621efa459cf3f619be36a646af063c2601db6c
MD5 afb3b34b7a87f15fb31fdc7292d18433
BLAKE2b-256 bef0e8a57cfe4249a43c1649711ae2d6c7a9a92603abfd6b85aee0f3d83fc7fd

See more details on using hashes here.

File details

Details for the file configure_with_sudo-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for configure_with_sudo-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 379a89d5ba2700a9d926901b370940fc0641b65b75cedca403fb5d78b47229d7
MD5 d837a9da572ad99004e749382a26f710
BLAKE2b-256 1f958cb371c534bed40fb02f5150c8615e8ba4acbeebaf8e2a08490d995e176c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page