Skip to main content

A powerful CLI tool for various automation tasks.

Project description

Nox Logo

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

  • 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:

  1. Create a new Python file in the nox/plugins/ directory.
  2. 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()
  1. 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


Download files

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

Source Distribution

nox_cli-0.1.1.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

nox_cli-0.1.1-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

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

Hashes for nox_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e8fb62c08a1c558bad8b9e2c029095447bbb1893e3c883cab315865162436180
MD5 b2682737d5ac3ff468173257f205b2be
BLAKE2b-256 4361bcfdb53048b7ca5cd0469de8c81411df1ea3caa7d43d84d011ffe99c1a73

See more details on using hashes here.

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

Hashes for nox_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2433e0a1c609175269515a9b90b17dfc1fdf7df73905c60601d2202072bae7f
MD5 8f99febb7943cfb7d2efb28ec63ffe87
BLAKE2b-256 86c75335370f56b91a566030de8afa5b0e18848c020dd7ed269da80a96dc690c

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