A powerful CLI tool for various automation tasks.
Project description
Nox is a Python CLI tool designed to automate and streamline various day-to-day tasks commonly performed by software engineers. It provides functionalities like JWT management, encryption/decryption, interaction with AWS S3, database operations, Docker management, and more.
Table of Contents
- Features
- Usage
- JWT Management
- Encryption and Decryption
- S3 File Management
- Database Operations
- Docker Management
- Network Operations
- Secrets Management
- File and Directory Operations
- UUID Generation
- Hashing Utilities
- Environment Management
- Service Management
- Template Generation
- Time and Date Utilities
- Cloud Operations
- Plugins
- Contributing
- License
Features
- JWT Management: Generate and verify JWT tokens for different environments.
- Encryption/Decryption: Encrypt and decrypt text or files using various algorithms.
- S3 File Management: List, upload, and remove files from AWS S3 buckets.
- Database Operations: Run queries and manage database migrations.
- Docker Management: Build and run Docker containers with ease.
- Network Operations: Perform network-related tasks like ping, traceroute, and DNS lookups.
- Secrets Management: Store and retrieve secrets securely.
- File and Directory Operations: Search for files, calculate directory sizes, and more.
- UUID Generation: Generate UUIDs for various purposes.
- Hashing Utilities: Hash text or files using algorithms like SHA-256, MD5, etc.
- Environment Management: Manage environment variables by setting, getting, and listing them.
- Service Management: Start, stop, and check the status of system services.
- Template Generation: Generate boilerplate code for projects or components.
- Time and Date Utilities: Work with dates and times, convert timezones, etc.
- Cloud Operations: Deploy and manage applications on cloud providers.
Usage
Nox provides a variety of commands. Here are some examples:
JWT Management
Generate a JWT for a specific environment:
nox jwt generate --env prod --key /path/to/key.pem --claims claims.json
Verify a JWT token:
nox jwt verify --token your.jwt.token --key /path/to/public.pem
Encryption and Decryption
Encrypt a file using Base64 encryption:
nox encrypt base64 --input /path/to/file --output /path/to/output
Decrypt a file:
nox decrypt base64 --input /path/to/encrypted_file --output /path/to/decrypted_file
S3 File Management
List files in an S3 bucket:
nox s3 list --bucket my-bucket --region us-west-2
Database Operations
Backup a PostgreSQL database:
nox db backup --db "postgresql://user:password@localhost:5432/mydb" --output /path/to/backup.sql
Restore a PostgreSQL database:
nox db restore --db "postgresql://user:password@localhost:5432/mydb" --input /path/to/backup.sql
Docker Management
Clean up unused Docker containers, images, and volumes:
nox docker clean
Tail logs for a Docker container:
nox docker logs --container container_name
Network Operations
Ping a host:
nox net ping --host google.com
Perform a DNS lookup:
nox net dns --domain example.com
Secrets Management
Encrypt a secret:
nox secrets encrypt --secret "mysecret" --key /path/to/key.pem
Decrypt a secret:
nox secrets decrypt --secret "encrypted_secret" --key /path/to/key.pem
File and Directory Operations
Compress a directory:
nox file compress --input /path/to/directory --output /path/to/output.zip --algorithm zip
Decompress a file:
nox file decompress --input /path/to/file.zip --output /path/to/output_directory
UUID Generation
Generate a new UUID:
nox uuid generate
Hashing Utilities
Hash a text using SHA-256:
nox hash --text "your text" --algorithm sha256
Hash a file:
nox hash --file /path/to/file --algorithm sha256
Environment Management
Set environment variables from a file:
nox env set --file /path/to/.env
Retrieve the value of an environment variable:
nox env get --name ENV_VAR_NAME
Service Management
Start a system service:
nox service start --name docker
Check the status of a system service:
nox service status --name docker
Template Generation
Create a new project template:
nox template create --type flask-app --name my_project
Time and Date Utilities
Display the current date and time in ISO format:
nox time now --format iso
Cloud Operations
Deploy an application to a cloud provider:
nox cloud deploy --provider aws --config deploy_config.json
Check the status of a deployed application:
nox cloud status --provider aws --app my_app
Plugins
Nox supports a plugin system that allows you to extend its functionality without modifying the core codebase.
Creating a Plugin
To create a plugin, follow these steps:
- Create a new Python file in the
nox/plugins/
directory. - Implement the
NoxPlugin
interface.
# nox/plugins/my_plugin.py
import click
from nox.plugins import NoxPlugin
class MyPlugin(NoxPlugin):
def register_commands(self, cli):
@cli.command()
def my_command():
"""Command provided by MyPlugin."""
click.echo("This is a command from MyPlugin!")
plugin = MyPlugin()
- Your plugin will be automatically discovered and loaded when you run Nox.
Loading External Plugins
To load plugins distributed as separate packages, ensure they are installed in the same environment as Nox, and they will be discovered automatically.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. Before contributing, please ensure you have read the Contributing Guidelines.
License
This project is licensed under the MIT License. See the LICENSE file for details.
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
File details
Details for the file nox_cli-0.1.1.tar.gz
.
File metadata
- Download URL: nox_cli-0.1.1.tar.gz
- Upload date:
- Size: 30.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8fb62c08a1c558bad8b9e2c029095447bbb1893e3c883cab315865162436180 |
|
MD5 | b2682737d5ac3ff468173257f205b2be |
|
BLAKE2b-256 | 4361bcfdb53048b7ca5cd0469de8c81411df1ea3caa7d43d84d011ffe99c1a73 |
File details
Details for the file nox_cli-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: nox_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2433e0a1c609175269515a9b90b17dfc1fdf7df73905c60601d2202072bae7f |
|
MD5 | 8f99febb7943cfb7d2efb28ec63ffe87 |
|
BLAKE2b-256 | 86c75335370f56b91a566030de8afa5b0e18848c020dd7ed269da80a96dc690c |