Clingwrap
Clingwrap is a simple debugging tool which collects information about the state of a system and stores that information in a zip file for later analysis. It was originally implemented for the Shaken Fist (https://shakenfist.com) project, but is more generally useful than that.
Clingwrap takes a configuration file (see examples/shakenfist-ci-failure.cwd for an example), and processes the list of commands in that file to produce the zip file of debugging output. The commands are specified in a simple YAML format, where a configuration file looks like this:
--
commands:
- name: Kernel version and architecture
destination: _commands/uname
shell: uname -a
- name: Installed system OS packages and versions
destination: _commands/dpkg
shell: dpkg -l
Possible commands are:
file commands: which record the contents of a file. For example:
- name: syslog
destination: var/log/syslog
file: /var/log/syslog
directory commands: which record all files in a given directory hierarchy, with a possible simple exclusion regexp. For example:
- name: Shaken Fist instances
destination: /srv/shakenfist/instances
directory: /srv/shakenfist/instances
exclude: "hd[ac-z]"
shell commands: which take a command line or script and execute them in a shell. A valid configuration is:
- name: Kernel version and architecture
destination: _commands/uname
shell: uname -a
shell_emitter commands: which run a shell script which emits further commands to execute. This is useful for finding objects and then storing information about them. A valid example is:
- name: Network namespaces
shell_emitter: |
for item in `find /var/run/netns -type f | sed 's/.*\///'`
do
echo "commands:
- name: Network interfaces (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip link
- name: Network addresses (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip addr
- name: Network routes (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip route
"
done
Metadata
Release files for clingwrap 2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| clingwrap-2.1-py3-none-any.whl | Python 3 | none | any | Details for clingwrap-2.1-py3-none-any.whl |
Release files / clingwrap-2.1-py3-none-any.whl
| Download URL | clingwrap-2.1-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f2e3dfde1a011081cce1163a1b7c6bd9bb1f8e313898e53e06d2e751e5845b67
|
|
BLAKE2b-256 checksum How to use checksums |
4fcd9537c95781452c2bf9f690ae41a5fa7be4f9d5a31f999b08bd749bffd7e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Security for clingwrap 2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.