Skip to main content

The beginning

The shell scripting gets to be non-maintainable code; its sintaxis is very cryptic and it’s very hard to debug. Aside all these negative point increase at the same time as the size of the program grows.

Here is where Python comes.

Whatever administrator without great knowledge about programming can built basic scripts fastly after of read the tutorial. Its sintaxis is as pseudo-code so it’s very easy to code. The basic errors –as syntax errors and exceptions– help to debug together to the error logging system implemented in logging module. In addition Python comes with an extensive standard library of useful modules which will help to speed up the development of scripts, and if you need some another module could be searched in the PyPi repository.

I had forked the Fabric project to add the files editing and something other thing but my goal is very different to that project, aside of that my changes were not added until that I deleted my forked repository (after many months).

Scripy

The main tool of this package is the shell.Run() class which lets to run system commands in the same shell. It works well with pipes and pass the shell variables. It doesn’t makes pattern expansion (* ?) as in the shell but could be used shell.expand() instead.

The path of all commands used by Scripy are in the path module so it’s avoid some possible trojan. The path is right for Debian/Ubuntu systems since it’s where I can check them.

Logging

The logging is configured to write messages in YAML format since it’s more easy to parse, and using the international format for date and time.

To setup the logging, there is that run at beginning of the new script:

from scripy.setup import log

log.setup(filename)

where filename is /tmp/scripy.log by default, the file where is going to be logged.

And for tear down it (after of run all script):

log.teardown()

Then, in each module where is going to be used there is to add at the beginning:

from scripy import shell

_log = shell.logger(__name__)

so it pass the module name where it’s being run. Now, can be used all methods of _log –debug(), info(), warning(), error() and critical()– to indicate the importance of a logged message.

Edit

Something that is very important in the shell script is the files editing, and Scripy makes it very easy using the edit.Edit() class. It only creates backups to files that are going to be modified, lets modify files owned by another users (since that uses sudo when the class is instancied), and has methods for append text, comment or comment out lines that start with a determined chracter, and a wrapper to sed which lets backup the file.

Release files for Scripy 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Scripy 0.9
File Size Uploaded
Scripy-0.9.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Scripy 0.9
File Interpreter ABI Platform
Scripy-0.9-py2.6.egg Legacy Egg format - - Details

Total release size: 41.9 kB

Release files / Scripy-0.9.tar.gz

Download URL Scripy-0.9.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
50bfa5e80ce861e0bbb619bb6ea5d3652f29533f2c33c47794f2999c24bdbb32
BLAKE2b-256 checksum
How to use checksums
d237348fd7e70f319d5968a3a2fa87dd67bb63133e5a3cdd3f914c4b4728a12c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Scripy-0.9-py2.6.egg

Download URL Scripy-0.9-py2.6.egg
Size 27.2 kB
Tags Egg
SHA-256 checksum
How to use checksums
29b1111550ef48029bb8916a6ead50199011a3c37d1fd654b7fdc8890bcb9caf
BLAKE2b-256 checksum
How to use checksums
ff817fed418a938825b4380d10298a00602ffc0eeb5db9f950b639b5dd0aab7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.9.3

2 release files

0.9.2

2 release files

This release

0.9 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page