Skip to main content

Integration of shell and basic GNU core unilities for better coding.

Project description

niceshell - Python 3 module for better shell coding

Requirements

  • Python 3.6+ (tested on 3.6.0)

Installation

Automatic installation

python3 -m pip install niceshell

Manual installation

cd /tmp/
version=1.3.1 # Choose desired version
wget -c "https://github.com/Andrew15-5/niceshell/releases/download/v${version}/niceshell-${version}-py3-none-any.whl"
python3 -m pip -U --user install niceshell-${version}-py3-none-any.whl

Usage

from niceshell import *
ext = "py"

process1 = ls(f"*.{ext}", batch=True)
if process1.exit_code():
    print("No Python scripts here. :(")
    print("stderr:", process1.error_output(), end='')
    exit(1)

process2 = ls(f"*.{ext}", True).shell("head -n 5")
print("stdout:", process2.output(), end='')
files = process2.get_lines()

ln(files, "/tmp/").wait()

Important note

Due to different preferences among coders some things like:

  • raised error instead of silencly returned error code or None
  • type of raised error and its message;
  • behavior of edge cases (the way parameter's data is handled);
  • parameter names and their ordinal position
  • behavior of command with provided input text (with sudo)

can be inconvenient to some extent for someone and be perfect for others. Therefore, I encourage everyone to test result of each function, method, variable, constant, etc. to be 100% sure of how your script/program/app will handle every situation.

There are some tests in "tests" directory (./niceshell/tests/) to get you started. And of course you can see implementation of whatever the module provides for better understanding of what you are looking for.

Complete list of modules and their functions/classes

Note: list can be exteneded in future updates.

  • __init__
    • GID ($USER's group ID)
    • GROUP ($USER's group name)
    • HOME ($USERS's home dir aka '~')
    • UID ($USER's ID)
    • USER ($USER)
  • core
    • expose_tilde()
    • normalize_short_and_long_args()
    • quotes_wrapper()
    • shell()
    • Shell
    • ShortArgsOption
  • extra
    • force_sudo_password_promt()
    • get_root_privileges()
    • get_root_privileges_or_exit()
    • has_root_privileges()
    • list_dirs()
    • list_files()
  • gnu_coreutils
    • cd()
    • cp()
    • ln()
    • ls()
    • mv()
    • pwd()
    • rm()

TODO list

  • Add pwd
  • Add functions to get dirs and files from path
  • Add ability to install module via pip
  • Add ability to get command's output and pipe it to another command
  • Add function that check if sudo can be used without password
  • Add ability to provide input to command in core.Shell
  • Add cd
  • Add mv
  • Add rm
  • Add cp

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

niceshell-1.3.1.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

niceshell-1.3.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file niceshell-1.3.1.tar.gz.

File metadata

  • Download URL: niceshell-1.3.1.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for niceshell-1.3.1.tar.gz
Algorithm Hash digest
SHA256 39c1a6dd25731c72d8a54458929c48e607d31c3c121bfe6b19fe8040da1e7a92
MD5 c12a8ea6f3add2b4fe432bb7fbb90bc4
BLAKE2b-256 3cb46cba6db6ea38605ccb2ed702bf91f61f4a57c1734661135e7eb903d6026b

See more details on using hashes here.

File details

Details for the file niceshell-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: niceshell-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for niceshell-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2638d2b83bcabe7f6dcace1773169176c4e85a83536f0b18c83e1ddf380ac3cc
MD5 e340d4b46d30d4e248af5a9acd31cc06
BLAKE2b-256 41b26569aaa0a4530af2ceae956b24ae43f3a2ffc6a5be9b93281ba363b00b69

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