From 58831ad291b72ebd054efa8eb1481fd5148c7281 Mon Sep 17 00:00:00 2001 From: Tajeddine Bourhim Date: Sun, 25 Jan 2026 21:43:46 +0100 Subject: [PATCH 1/3] add: complete JSON files for conda, distrobox, fastfetch, git, pip, and uv with commands and ASCII art --- data/conda.json | 100 +++++++++++++++++++++++ data/distrobox.json | 96 ++++++++++++++++++++++ data/fastfetch.json | 112 ++++++++++++++++++++++++++ data/git.json | 188 ++++++++++++++++++++++++++++++++++++++++++++ data/pip.json | 138 ++++++++++++++++++++++++++++++++ data/uv.json | 107 +++++++++++++++++++++++++ 6 files changed, 741 insertions(+) create mode 100644 data/conda.json create mode 100644 data/distrobox.json create mode 100644 data/fastfetch.json create mode 100644 data/git.json create mode 100644 data/pip.json create mode 100644 data/uv.json diff --git a/data/conda.json b/data/conda.json new file mode 100644 index 0000000..af66ff8 --- /dev/null +++ b/data/conda.json @@ -0,0 +1,100 @@ +{ + "LOGO": [ + { + "ascii": [ + "[cyan] _____ ___ __ ___ __ ____ ___[/cyan]", + "[cyan] / ___/ | / / | / / / _ \\ / //_ / / _ \\[/cyan]", + "[cyan] / /__| | / /| |/ / / // / / ,< / / //_/[/cyan]", + "[cyan] \\___/| |_/ / |___/ /____/ /_/|_|/_/ \\___/[/cyan]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ___ __ __ ___ ___ __ ", + " / __|| \\/ || _ \\ / _ \\ / \\ ", + "| (__ | () () || _/| (_) | | ", + " \\___||__/\\__||_| \\___/|_/\\_\\ ", + " " + ] + } + ], + "STYLE": { + "command_width": 30, + "outer_width": 140, + "primary_color": "cyan" + }, + "Environment Management": [ + { + "command": "conda create -n myenv python=3.10", + "description": "Create a new conda environment with Python 3.10" + }, + { + "command": "conda activate myenv", + "description": "Activate the conda environment" + }, + { + "command": "conda deactivate", + "description": "Deactivate the current conda environment" + }, + { + "command": "conda env list", + "description": "List all conda environments" + }, + { + "command": "conda remove -n myenv --all", + "description": "Remove a conda environment" + } + ], + "Package Management": [ + { + "command": "conda install numpy pandas", + "description": "Install packages into the current environment" + }, + { + "command": "conda install -c conda-forge package_name", + "description": "Install from conda-forge channel" + }, + { + "command": "conda list", + "description": "List installed packages in the current environment" + }, + { + "command": "conda update package_name", + "description": "Update a package to the latest version" + }, + { + "command": "conda remove package_name", + "description": "Uninstall a package" + } + ], + "Searching & Info": [ + { + "command": "conda search package_name", + "description": "Search for available packages" + }, + { + "command": "conda info", + "description": "Display conda version and system information" + }, + { + "command": "conda info --envs", + "description": "Show detailed information about all environments" + } + ], + "Environment Files": [ + { + "command": "conda env export > environment.yml", + "description": "Export current environment to YAML file" + }, + { + "command": "conda env create -f environment.yml", + "description": "Create environment from YAML file" + }, + { + "command": "conda env update -f environment.yml", + "description": "Update environment from YAML file" + } + ] +} diff --git a/data/distrobox.json b/data/distrobox.json new file mode 100644 index 0000000..9d21405 --- /dev/null +++ b/data/distrobox.json @@ -0,0 +1,96 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] ___ _ _[/blue]", + "[blue] | \\(_)___| |_ _ __ ___[/blue]", + "[blue] | |) | / __| __| __|/ _ \\[/blue]", + "[blue] | | | \\__ \\ |_| | | (_) |[/blue]", + "[blue] |_| |_|___/\\__|_| \\___/[/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ____ _ _ ", + " | _ \\(_)___| |_ _ __ ___ _ ___ _.._ __ ", + " | | | | / __| __| '__/ _ \\| | | \\ \\/ / '__| ", + " | |_| | \\__ \\ |_| | | (_) | |_| |> <| | ", + " |____/|_|___/\\__|_| \\___/ \\__, /_/\\_\\_| ", + " |___/ " + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "blue" + }, + "Container Management": [ + { + "command": "distrobox create --name mybox --image ubuntu:22.04", + "description": "Create a new distrobox container" + }, + { + "command": "distrobox create -n mybox -i fedora:latest", + "description": "Create with custom image (short options)" + }, + { + "command": "distrobox enter mybox", + "description": "Enter/access a distrobox container" + }, + { + "command": "distrobox list", + "description": "List all distrobox containers" + }, + { + "command": "distrobox remove mybox", + "description": "Remove a distrobox container" + } + ], + "Running Commands": [ + { + "command": "distrobox-run -n mybox -- command", + "description": "Run a command inside a distrobox" + }, + { + "command": "distrobox run -n mybox -- apt update", + "description": "Run apt update in the container" + } + ], + "Container Customization": [ + { + "command": "distrobox create --name mybox --image debian:bookworm --home /custom/home", + "description": "Create with custom home directory" + }, + { + "command": "distrobox create -n mybox -i alpine:latest --init", + "description": "Create with init system enabled" + } + ], + "Host Integration": [ + { + "command": "distrobox-export --app myapp --export-path ~/.local/bin", + "description": "Export an application from container to host" + }, + { + "command": "distrobox-enter mybox -- sudo apt install package", + "description": "Install packages in the container" + } + ], + "Info & Upgrade": [ + { + "command": "distrobox ps", + "description": "Show running distrobox containers" + }, + { + "command": "distrobox upgrade", + "description": "Upgrade all distrobox containers" + }, + { + "command": "distrobox version", + "description": "Show distrobox version" + } + ] +} diff --git a/data/fastfetch.json b/data/fastfetch.json new file mode 100644 index 0000000..f70bb06 --- /dev/null +++ b/data/fastfetch.json @@ -0,0 +1,112 @@ +{ + "LOGO": [ + { + "ascii": [ + "[green] ___ _ _ _ _[/green]", + "[green] | __) _ _ __| |_ | |_ ___| |_ _| |_[/green]", + "[green] | _| | '_|/ _ ' \\| _|/ -_| _|/ _ ' \\[/green]", + "[green] |_| |_| \\__,_||_|\\__|\\___|\\_| \\__,_||_|[/green]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ___ _ _ _ _", + " | _| ___ ___| |_ / \\ ___ _ _ | |__ | |", + " | | / _ \\/ __| __// \\/ -_)| | | | __| | |", + " |_| \\___/\\__ \\__//_||_\\\\___|\\__|_|_|\\__|_|_|", + " " + ] + } + ], + "STYLE": { + "command_width": 25, + "outer_width": 140, + "primary_color": "green" + }, + "Basic Info": [ + { + "command": "fastfetch", + "description": "Display full system information with logo" + }, + { + "command": "fastfetch --help", + "description": "Show all available options" + }, + { + "command": "fastfetch --version", + "description": "Show fastfetch version" + } + ], + "Configuration": [ + { + "command": "fastfetch --config /path/to/config.json", + "description": "Use a custom configuration file" + }, + { + "command": "fastfetch --config none", + "description": "Ignore all configuration files" + }, + { + "command": "mkdir -p ~/.config/fastfetch", + "description": "Create config directory" + } + ], + "Output Customization": [ + { + "command": "fastfetch --logo none", + "description": "Hide the logo" + }, + { + "command": "fastfetch --logo small", + "description": "Show smaller logo" + }, + { + "command": "fastfetch --logo-width 30", + "description": "Set logo width in characters" + }, + { + "command": "fastfetch --color-keys blue", + "description": "Change label color" + } + ], + "Module Selection": [ + { + "command": "fastfetch --modules os host cpu memory", + "description": "Show specific modules only" + }, + { + "command": "fastfetch --modules all", + "description": "Show all available modules" + }, + { + "command": "fastfetch --show cpu memory gpu disk", + "description": "Display selected modules" + } + ], + "Output Formats": [ + { + "command": "fastfetch -o json", + "description": "Output as JSON" + }, + { + "command": "fastfetch -o csv", + "description": "Output as CSV" + }, + { + "command": "fastfetch --no-color", + "description": "Disable colored output" + } + ], + "Screen Modes": [ + { + "command": "fastfetch --screen-height 30", + "description": "Set terminal height for display" + }, + { + "command": "fastfetch --screen-width 80", + "description": "Set terminal width for display" + } + ] +} diff --git a/data/git.json b/data/git.json new file mode 100644 index 0000000..271e823 --- /dev/null +++ b/data/git.json @@ -0,0 +1,188 @@ +{ + "LOGO": [ + { + "ascii": [ + "[yellow] __ (_) _[/yellow]", + "[yellow] / /_/ / /(_)[/yellow]", + "[yellow] / __ / / / [/yellow]", + "[yellow] / / / / / / / [/yellow]", + "[yellow]/_/ /_/_/ /_/ [/yellow]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ____ _ _ ", + " / ___|| ||_ | ", + " | | _ | | | | ", + " | |_| || || | ", + " \\____||_||_| ", + " " + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "yellow" + }, + "Setup & Configuration": [ + { + "command": "git config --global user.name 'Your Name'", + "description": "Set your global git username" + }, + { + "command": "git config --global user.email 'your@email.com'", + "description": "Set your global git email" + }, + { + "command": "git config --global core.editor vim", + "description": "Set default text editor" + }, + { + "command": "git config --list", + "description": "Show all git configurations" + } + ], + "Repository Basics": [ + { + "command": "git init", + "description": "Initialize a new git repository" + }, + { + "command": "git clone ", + "description": "Clone a remote repository" + }, + { + "command": "git status", + "description": "Show working tree status" + } + ], + "Staging & Committing": [ + { + "command": "git add ", + "description": "Stage a specific file" + }, + { + "command": "git add .", + "description": "Stage all changes" + }, + { + "command": "git commit -m 'message'", + "description": "Commit staged changes" + }, + { + "command": "git commit -am 'message'", + "description": "Stage and commit tracked files" + } + ], + "Branching": [ + { + "command": "git branch", + "description": "List local branches" + }, + { + "command": "git branch -a", + "description": "List all branches (local and remote)" + }, + { + "command": "git branch ", + "description": "Create a new branch" + }, + { + "command": "git switch ", + "description": "Switch to a branch" + }, + { + "command": "git checkout -b ", + "description": "Create and switch to new branch" + } + ], + "Remote Repository": [ + { + "command": "git remote -v", + "description": "Show remote repositories" + }, + { + "command": "git remote add origin ", + "description": "Add a remote repository" + }, + { + "command": "git push origin main", + "description": "Push commits to remote" + }, + { + "command": "git pull origin main", + "description": "Fetch and merge remote changes" + } + ], + "Merging & Rebasing": [ + { + "command": "git merge ", + "description": "Merge another branch into current branch" + }, + { + "command": "git rebase ", + "description": "Rebase current branch" + }, + { + "command": "git merge --abort", + "description": "Cancel a merge in progress" + } + ], + "History & Inspection": [ + { + "command": "git log", + "description": "Show commit history" + }, + { + "command": "git log --oneline", + "description": "Show concise commit history" + }, + { + "command": "git log --graph --all --oneline", + "description": "Show visual branch history" + }, + { + "command": "git diff", + "description": "Show unstaged changes" + }, + { + "command": "git diff --staged", + "description": "Show staged changes" + } + ], + "Undoing Changes": [ + { + "command": "git restore ", + "description": "Discard changes to a file" + }, + { + "command": "git restore --staged ", + "description": "Unstage a file" + }, + { + "command": "git reset HEAD~1", + "description": "Undo last commit (keep changes)" + }, + { + "command": "git revert ", + "description": "Create new commit that undoes changes" + } + ], + "Tagging": [ + { + "command": "git tag v1.0.0", + "description": "Create a lightweight tag" + }, + { + "command": "git tag -a v1.0.0 -m 'Release 1.0.0'", + "description": "Create an annotated tag" + }, + { + "command": "git push origin v1.0.0", + "description": "Push a specific tag" + } + ] +} diff --git a/data/pip.json b/data/pip.json new file mode 100644 index 0000000..44a08da --- /dev/null +++ b/data/pip.json @@ -0,0 +1,138 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] ___ __ ___[/blue]", + "[blue] / _ \\/ / / _ \\[/blue]", + "[blue] / .__/ /_/ .__/[/blue]", + "[blue] /_/ \\____/_/ [/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ____ _ ___ ", + " / __ \\| |/ _ \\ ", + " / / / /| | |_| | ", + "/_/ /_/ |_|\\___/ ", + " " + ] + } + ], + "STYLE": { + "command_width": 30, + "outer_width": 140, + "primary_color": "blue" + }, + "Installation & Upgrades": [ + { + "command": "pip install package_name", + "description": "Install a package from PyPI" + }, + { + "command": "pip install package_name==1.2.3", + "description": "Install a specific version" + }, + { + "command": "pip install --upgrade pip", + "description": "Upgrade pip itself" + }, + { + "command": "pip install -r requirements.txt", + "description": "Install packages from requirements file" + } + ], + "Package Management": [ + { + "command": "pip list", + "description": "List installed packages" + }, + { + "command": "pip show package_name", + "description": "Show package information" + }, + { + "command": "pip search package_name", + "description": "Search PyPI for packages" + }, + { + "command": "pip uninstall package_name", + "description": "Remove a package" + } + ], + "Version Management": [ + { + "command": "pip install 'package_name>=1.0,<2.0'", + "description": "Install with version range" + }, + { + "command": "pip index versions package_name", + "description": "List available versions of a package" + }, + { + "command": "pip install --upgrade package_name", + "description": "Update package to latest version" + } + ], + "Requirements Files": [ + { + "command": "pip freeze > requirements.txt", + "description": "Generate requirements file from current environment" + }, + { + "command": "pip install -r requirements.txt", + "description": "Install from requirements file" + }, + { + "command": "pip install -r requirements-dev.txt", + "description": "Install development requirements" + } + ], + "Virtual Environments": [ + { + "command": "python -m venv myenv", + "description": "Create a virtual environment" + }, + { + "command": "source myenv/bin/activate", + "description": "Activate venv (Linux/macOS)" + }, + { + "command": "myenv\\Scripts\\activate", + "description": "Activate venv (Windows)" + }, + { + "command": "deactivate", + "description": "Deactivate virtual environment" + } + ], + "Package Inspection": [ + { + "command": "pip show -f package_name", + "description": "Show package files" + }, + { + "command": "pip check", + "description": "Check for broken dependencies" + }, + { + "command": "pip cache info", + "description": "Show pip cache information" + } + ], + "Advanced": [ + { + "command": "pip install -e .", + "description": "Install package in editable mode" + }, + { + "command": "pip install git+https://github.com/user/repo.git", + "description": "Install from Git repository" + }, + { + "command": "pip install --force-reinstall package_name", + "description": "Force reinstall a package" + } + ] +} diff --git a/data/uv.json b/data/uv.json new file mode 100644 index 0000000..e4e3026 --- /dev/null +++ b/data/uv.json @@ -0,0 +1,107 @@ +{ + "LOGO": [ + { + "ascii": [ + "[magenta] __ ____[/magenta]", + "[magenta]/ / / / /[/magenta]", + "[magenta]\\/ \\/ \\/ [/magenta]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " _ _ __ ___ __ ", + " | | | |/ / / __| / \\ ", + " | |_| / \\ | (__ | | ", + " \\___/_/\\_\\ \\___||_/\\_\\ ", + " " + ] + } + ], + "STYLE": { + "command_width": 30, + "outer_width": 140, + "primary_color": "magenta" + }, + "Project Initialization": [ + { + "command": "uv init", + "description": "Initialize a new Python project" + }, + { + "command": "uv init --package", + "description": "Initialize a new Python package" + }, + { + "command": "uv init --name myproject", + "description": "Initialize with a specific project name" + } + ], + "Virtual Environments": [ + { + "command": "uv venv", + "description": "Create a virtual environment in the current directory" + }, + { + "command": "uv venv .venv", + "description": "Create a virtual environment at a specific path" + }, + { + "command": "source .venv/bin/activate", + "description": "Activate the virtual environment (Linux/macOS)" + }, + { + "command": ".venv\\Scripts\\activate", + "description": "Activate the virtual environment (Windows)" + } + ], + "Dependency Management": [ + { + "command": "uv add requests numpy", + "description": "Add dependencies to the project" + }, + { + "command": "uv add --dev pytest ruff", + "description": "Add development dependencies" + }, + { + "command": "uv remove package_name", + "description": "Remove a dependency from the project" + }, + { + "command": "uv lock", + "description": "Generate or update the lock file" + } + ], + "Dependency Installation": [ + { + "command": "uv sync", + "description": "Sync dependencies from lock file" + }, + { + "command": "uv pip install package_name", + "description": "Install packages with pip-like interface" + } + ], + "Running Code": [ + { + "command": "uv run python script.py", + "description": "Run a Python script with project dependencies" + }, + { + "command": "uv run mycommand", + "description": "Run a command script defined in pyproject.toml" + } + ], + "Building & Publishing": [ + { + "command": "uv build", + "description": "Build the project distribution" + }, + { + "command": "uv publish", + "description": "Publish the project to PyPI" + } + ] +} From dad8bb17c078c44361c1fc48490d8126efa14fa1 Mon Sep 17 00:00:00 2001 From: Tajeddine Bourhim Date: Sun, 25 Jan 2026 22:15:09 +0100 Subject: [PATCH 2/3] Add JSON configuration files for various command-line tools - Created go.json with commands for Go programming language including compilation, running code, module management, dependency management, testing, code quality, and installation. - Added grep.json for text searching commands with options for extended patterns, search scope, filtering, and advanced usage. - Introduced make.json containing commands for building projects, managing variables, targets, parallel execution, debugging, and common targets. - Implemented nvm.json for Node version management commands including installation, switching versions, setting default versions, and managing aliases. - Added poetry.json for Python dependency management with commands for project setup, dependency management, virtual environments, running code, and building/publishing packages. - Created rsync.json for file synchronization commands including local and remote synchronization, filtering, performance tuning, and advanced options. - Introduced sdkman.json for managing SDKs with commands for installation, listing SDKs, setting default versions, and updates. - Added ssh.json for SSH commands covering connection, key management, file transfer, tunneling, and configuration. - Implemented sudo.json for running commands with superuser privileges, managing passwords, privileges, and logging. - Created systemctl.json for managing system services with commands for starting, stopping, enabling, disabling, and troubleshooting services. - Added tar.json for archiving and compressing files with commands for creating, extracting, and managing tar and zip files. - Introduced useradd.json for user management commands including creating, deleting users, managing groups, and password management. --- cheatbox/data.py | 71 ++++++++++++++++++++--- cheatbox/main.py | 39 ++++++++++++- data/asdf.json | 121 +++++++++++++++++++++++++++++++++++++++ data/cargo.json | 136 ++++++++++++++++++++++++++++++++++++++++++++ data/conda.json | 9 +-- data/curl.json | 123 +++++++++++++++++++++++++++++++++++++++ data/distrobox.json | 10 ++-- data/du.json | 85 +++++++++++++++++++++++++++ data/fastfetch.json | 8 +-- data/find.json | 117 +++++++++++++++++++++++++++++++++++++ data/git.json | 10 ++-- data/go.json | 126 ++++++++++++++++++++++++++++++++++++++++ data/grep.json | 98 +++++++++++++++++++++++++++++++ data/make.json | 111 ++++++++++++++++++++++++++++++++++++ data/nvm.json | 105 ++++++++++++++++++++++++++++++++++ data/pip.json | 9 +-- data/poetry.json | 123 +++++++++++++++++++++++++++++++++++++++ data/rsync.json | 99 ++++++++++++++++++++++++++++++++ data/sdkman.json | 97 +++++++++++++++++++++++++++++++ data/ssh.json | 125 ++++++++++++++++++++++++++++++++++++++++ data/sudo.json | 103 +++++++++++++++++++++++++++++++++ data/systemctl.json | 107 ++++++++++++++++++++++++++++++++++ data/tar.json | 103 +++++++++++++++++++++++++++++++++ data/useradd.json | 127 +++++++++++++++++++++++++++++++++++++++++ data/uv.json | 8 ++- 25 files changed, 2036 insertions(+), 34 deletions(-) create mode 100644 data/asdf.json create mode 100644 data/cargo.json create mode 100644 data/curl.json create mode 100644 data/du.json create mode 100644 data/find.json create mode 100644 data/go.json create mode 100644 data/grep.json create mode 100644 data/make.json create mode 100644 data/nvm.json create mode 100644 data/poetry.json create mode 100644 data/rsync.json create mode 100644 data/sdkman.json create mode 100644 data/ssh.json create mode 100644 data/sudo.json create mode 100644 data/systemctl.json create mode 100644 data/tar.json create mode 100644 data/useradd.json diff --git a/cheatbox/data.py b/cheatbox/data.py index 1badbd6..9b5c3e2 100644 --- a/cheatbox/data.py +++ b/cheatbox/data.py @@ -2,6 +2,7 @@ from pick import pick from pathlib import Path import os +from difflib import SequenceMatcher class Data: def __init__(self): @@ -9,15 +10,71 @@ def __init__(self): self.data_dir = self.base_dir / "data" self.domain: str = self.select_domain() + def fuzzy_search(self, query: str, options: list, threshold: float = 0.3) -> list: + """ + Fuzzy search implementation for matching cheats + Returns list of (score, option) tuples sorted by relevance + """ + results = [] + query_lower = query.lower() + + for option in options: + option_lower = option.lower() + + # Check for exact substring match (highest priority) + if query_lower in option_lower: + score = 1.0 + else: + # Use SequenceMatcher for fuzzy matching + score = SequenceMatcher(None, query_lower, option_lower).ratio() + + if score >= threshold: + results.append((score, option)) + + # Sort by score descending + results.sort(reverse=True, key=lambda x: x[0]) + return [option for score, option in results] + def select_domain(self) -> str: - """Select domain to display""" - domains = [ + """Select domain to display with search option""" + domains = sorted([ file.stem for file in self.data_dir.glob("*.json") if file.name != "ascii.json" - ] - title = "CheatBox> Select the cheatsheet to display" - domain = pick(options=domains, title=title) - return str(domain[0]) # only return the name + ]) + + # Add search option at the top + options_with_search = ["🔍 Search Cheatsheets..."] + domains + + title = "CheatBox> Select the cheatsheet" + selected, index = pick( + options=options_with_search, + title=title, + indicator="→" + ) + + # If search option selected, prompt for query + if index == 0: + import typer + query = typer.prompt("Enter search query") + results = self.fuzzy_search(query, domains, threshold=0.3) + + if not results: + typer.echo(f"❌ No cheatsheets found matching '{query}'") + # Recurse to show menu again + return self.select_domain() + + if len(results) == 1: + return results[0] + + # Multiple results, let user pick + selected_result, _ = pick( + options=results, + title=f"🔍 Search results for '{query}'", + indicator="→" + ) + return selected_result + + return str(selected) # Return the selected domain def read_domain(self): """Read the content of the domain""" @@ -26,7 +83,7 @@ def read_domain(self): return json.load(f) except Exception as e: print(f"Error loading {self.domain}.json: {e}") - return {} # Return empty dict instead of None to prevent crashes + return {} # Return empty dict instead of None to prevent crashes def run(self): """Runner for data fetch""" diff --git a/cheatbox/main.py b/cheatbox/main.py index 56fbb07..3fbc708 100644 --- a/cheatbox/main.py +++ b/cheatbox/main.py @@ -9,8 +9,43 @@ @app.command() def list(): - domain = Data().run() - Display().display_bento(domain) + """Browse and display cheatsheets""" + data = Data() + domain_data = data.run() + Display().display_bento(domain_data) + +@app.command() +def search(query: str = typer.Argument(..., help="Search query for fuzzy search")): + """Search through available cheatsheets using fuzzy matching""" + from pathlib import Path + base_dir = Path(__file__).parent.parent + data_dir = base_dir / "data" + + domains = sorted([ + file.stem for file in data_dir.glob("*.json") + if file.name != "ascii.json" + ]) + + data = Data() + results = data.fuzzy_search(query, domains, threshold=0.2) + + if not results: + typer.echo(f"❌ No cheatsheets found matching '{query}'") + return + + if len(results) == 1: + data.domain = results[0] + domain_data = data.read_domain() + Display().display_bento(domain_data) + else: + selected_cheat, _ = pick( + options=results, + title=f"🔍 Search results for '{query}'", + indicator="→" + ) + data.domain = selected_cheat + domain_data = data.read_domain() + Display().display_bento(domain_data) @app.callback(invoke_without_command=True) def main(ctx: typer.Context): diff --git a/data/asdf.json b/data/asdf.json new file mode 100644 index 0000000..8d22aa2 --- /dev/null +++ b/data/asdf.json @@ -0,0 +1,121 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] _ _ ___ _[/blue]", + "[blue] /_\\ __| || __|| |[/blue]", + "[blue] / _ \\/ _` || _| | |[/blue]", + "[blue] /_/ \\_\\__,_||_| |_|[/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[blue] _ ____ ___ ___ ___[/blue]", + "[blue] / \\ | _ \\/ __|| _|| _\\[/blue]", + "[blue] / _ \\ | ___/\\__ \\ | |_ | |_[/blue]", + "[blue] / ___ \\|_| |___/ |___||____|[/blue]" + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "blue" + }, + "Installation": [ + { + "command": "git clone https://github.com/asdf-vm/asdf.git ~/.asdf", + "description": "Clone asdf to home directory" + }, + { + "command": "asdf --version", + "description": "Show asdf version" + } + ], + "Plugins": [ + { + "command": "asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git", + "description": "Add a plugin" + }, + { + "command": "asdf plugin list", + "description": "List installed plugins" + }, + { + "command": "asdf plugin list all", + "description": "List available plugins" + }, + { + "command": "asdf plugin remove nodejs", + "description": "Remove a plugin" + } + ], + "Version Management": [ + { + "command": "asdf list", + "description": "List installed versions" + }, + { + "command": "asdf list nodejs", + "description": "List installed versions of plugin" + }, + { + "command": "asdf list all nodejs", + "description": "List available versions" + } + ], + "Installation & Switching": [ + { + "command": "asdf install nodejs 18.16.0", + "description": "Install specific version" + }, + { + "command": "asdf install nodejs latest", + "description": "Install latest version" + }, + { + "command": "asdf global nodejs 18.16.0", + "description": "Set global version" + }, + { + "command": "asdf local nodejs 18.16.0", + "description": "Set local version (.tool-versions)" + } + ], + "Versions": [ + { + "command": "asdf current", + "description": "Show current versions" + }, + { + "command": "asdf current nodejs", + "description": "Show current version of tool" + } + ], + "Updates": [ + { + "command": "asdf update", + "description": "Update asdf itself" + }, + { + "command": "asdf plugin update nodejs", + "description": "Update plugin" + }, + { + "command": "asdf plugin update --all", + "description": "Update all plugins" + } + ], + "Cleanup": [ + { + "command": "asdf uninstall nodejs 18.16.0", + "description": "Remove specific version" + }, + { + "command": "asdf reshim", + "description": "Rebuild shims" + } + ] +} diff --git a/data/cargo.json b/data/cargo.json new file mode 100644 index 0000000..10e8c12 --- /dev/null +++ b/data/cargo.json @@ -0,0 +1,136 @@ +{ + "LOGO": [ + { + "ascii": [ + "[red] ___ [/red]", + "[red] / __| __ _ _ _ __ _ ___ [/red]", + "[red] | (__ / _` || '_| / _` |/ _ \\ [/red]", + "[red] \\___/\\__,_||_| \\__,_|\\___/ [/red]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[red] ____ ___ ___ ____ __[/red]", + "[red] / ___||_ |/ _ \\| _ \\/ /[/red]", + "[red] | | | | | | | |_| \\ \\[/red]", + "[red] | |___ | | |_| | __/ \\[/red]", + "[red] \\____| |_|\\___/|_| |_|[/red]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "red" + }, + "Project Setup": [ + { + "command": "cargo new project_name", + "description": "Create a new Rust project" + }, + { + "command": "cargo new --lib project_name", + "description": "Create a new Rust library" + }, + { + "command": "cargo init", + "description": "Initialize Cargo in current directory" + } + ], + "Building": [ + { + "command": "cargo build", + "description": "Build debug binary" + }, + { + "command": "cargo build --release", + "description": "Build optimized release binary" + }, + { + "command": "cargo build --target wasm32-unknown-unknown", + "description": "Build for specific target" + } + ], + "Running": [ + { + "command": "cargo run", + "description": "Build and run the project" + }, + { + "command": "cargo run --release", + "description": "Build and run optimized" + }, + { + "command": "cargo run -- --arg1 --arg2", + "description": "Pass arguments to binary" + } + ], + "Dependency Management": [ + { + "command": "cargo add package_name", + "description": "Add a dependency" + }, + { + "command": "cargo add --dev package_name", + "description": "Add dev dependency" + }, + { + "command": "cargo remove package_name", + "description": "Remove a dependency" + }, + { + "command": "cargo update", + "description": "Update dependencies" + } + ], + "Code Quality": [ + { + "command": "cargo check", + "description": "Check code for errors (fast)" + }, + { + "command": "cargo fmt", + "description": "Format code" + }, + { + "command": "cargo clippy", + "description": "Lint code (requires clippy)" + } + ], + "Testing": [ + { + "command": "cargo test", + "description": "Run all tests" + }, + { + "command": "cargo test test_name", + "description": "Run specific test" + }, + { + "command": "cargo test -- --test-threads=1", + "description": "Run tests sequentially" + } + ], + "Documentation": [ + { + "command": "cargo doc --open", + "description": "Generate and open documentation" + }, + { + "command": "cargo doc --no-deps", + "description": "Generate docs (exclude dependencies)" + } + ], + "Publishing": [ + { + "command": "cargo publish", + "description": "Publish to crates.io" + }, + { + "command": "cargo publish --dry-run", + "description": "Simulate publishing" + } + ] +} diff --git a/data/conda.json b/data/conda.json index af66ff8..9785de6 100644 --- a/data/conda.json +++ b/data/conda.json @@ -2,10 +2,11 @@ "LOGO": [ { "ascii": [ - "[cyan] _____ ___ __ ___ __ ____ ___[/cyan]", - "[cyan] / ___/ | / / | / / / _ \\ / //_ / / _ \\[/cyan]", - "[cyan] / /__| | / /| |/ / / // / / ,< / / //_/[/cyan]", - "[cyan] \\___/| |_/ / |___/ /____/ /_/|_|/_/ \\___/[/cyan]" + "[green] ___ _ _ ___[/green]", + "[green] / __\\ ___ _ __ __| | / \\\\ \\\\[/green]", + "[green] / / / / _ \\| '_ \\ / _` | / _ \\ |[/green]", + "[green] / /__| (_) | | | | (_| | / ___ \\ /[/green]", + "[green] \\____/\\___/|_| |_|\\__,_|/_/ \\_\\/[/green]" ] } ], diff --git a/data/curl.json b/data/curl.json new file mode 100644 index 0000000..74cd626 --- /dev/null +++ b/data/curl.json @@ -0,0 +1,123 @@ +{ + "LOGO": [ + { + "ascii": [ + "[yellow] _______________[/yellow]", + "[yellow]| _____ _____ |[/yellow]", + "[yellow]|| ___||__ || |[/yellow]", + "[yellow]||| |_____|[/yellow]", + "[yellow]|_____.|_____|_|[/yellow]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[yellow] ____ ___ _[/yellow]", + "[yellow] / __ | | | | / _ \\ (_)[/yellow]", + "[yellow] / / / | |_| |/ / / / | |[/yellow]", + "[yellow]/ /_/ | __ / /_/ / | |[/yellow]", + "[yellow]\\____/|_| |_|\\___/_| |_|[/yellow]" + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "yellow" + }, + "Basic Commands": [ + { + "command": "curl https://example.com", + "description": "Fetch a URL" + }, + { + "command": "curl -i https://example.com", + "description": "Include response headers" + }, + { + "command": "curl -I https://example.com", + "description": "Show headers only" + } + ], + "Request Methods": [ + { + "command": "curl -X POST https://api.example.com/data", + "description": "Make a POST request" + }, + { + "command": "curl -X PUT -d 'data' https://api.example.com", + "description": "Make a PUT request" + }, + { + "command": "curl -X DELETE https://api.example.com/id", + "description": "Make a DELETE request" + } + ], + "Data & Headers": [ + { + "command": "curl -d 'param1=value1¶m2=value2' https://api.example.com", + "description": "Send form data" + }, + { + "command": "curl -d '{\"key\":\"value\"}' -H 'Content-Type: application/json' https://api.example.com", + "description": "Send JSON data" + }, + { + "command": "curl -H 'Authorization: Bearer TOKEN' https://api.example.com", + "description": "Add custom header" + } + ], + "File Operations": [ + { + "command": "curl https://example.com/file.zip -o file.zip", + "description": "Download file with custom name" + }, + { + "command": "curl https://example.com/file.zip -O", + "description": "Download with original filename" + }, + { + "command": "curl -F 'file=@file.txt' https://api.example.com/upload", + "description": "Upload a file" + } + ], + "Authentication": [ + { + "command": "curl -u username:password https://api.example.com", + "description": "Basic authentication" + }, + { + "command": "curl --oauth2-bearer TOKEN https://api.example.com", + "description": "OAuth2 bearer token" + } + ], + "Verbose & Debugging": [ + { + "command": "curl -v https://example.com", + "description": "Verbose output" + }, + { + "command": "curl --trace - https://example.com", + "description": "Full trace of request/response" + }, + { + "command": "curl -w '%{http_code}' https://example.com", + "description": "Show HTTP status code" + } + ], + "Advanced": [ + { + "command": "curl -b 'cookie=value' https://example.com", + "description": "Send cookies" + }, + { + "command": "curl -L https://example.com", + "description": "Follow redirects" + }, + { + "command": "curl --max-time 10 https://example.com", + "description": "Set timeout (10 seconds)" + } + ] +} diff --git a/data/distrobox.json b/data/distrobox.json index 9d21405..f1aa991 100644 --- a/data/distrobox.json +++ b/data/distrobox.json @@ -2,11 +2,11 @@ "LOGO": [ { "ascii": [ - "[blue] ___ _ _[/blue]", - "[blue] | \\(_)___| |_ _ __ ___[/blue]", - "[blue] | |) | / __| __| __|/ _ \\[/blue]", - "[blue] | | | \\__ \\ |_| | | (_) |[/blue]", - "[blue] |_| |_|___/\\__|_| \\___/[/blue]" + "[blue] | \\ ___|[/blue]", + "[blue] | \\ | [/blue]", + "[blue] | \\ | __|[/blue]", + "[blue] | | \\ | [/blue]", + "[blue] _|\\_| \\_\\____|[/blue]" ] } ], diff --git a/data/du.json b/data/du.json new file mode 100644 index 0000000..97eaba9 --- /dev/null +++ b/data/du.json @@ -0,0 +1,85 @@ +{ + "LOGO": [ + { + "ascii": [ + "[magenta] ____ ____ ___ _____ [/magenta]", + "[magenta] | __|| __| / __|| _ | [/magenta]", + "[magenta] | |__ | |__ | (__ | |_| | [/magenta]", + "[magenta] |____||____| \\___|\\___/ [/magenta]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[magenta] ____ __ __ ___ _____[/magenta]", + "[magenta] | __| \\ \\ / / / __||_ _|[/magenta]", + "[magenta] | |__ \\ V / \\__ \\ | |[/magenta]", + "[magenta] |____| \\_/ |___/ |_|[/magenta]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "magenta" + }, + "Basic Commands": [ + { + "command": "du -sh directory/", + "description": "Show directory size (human-readable)" + }, + { + "command": "du -ah directory/", + "description": "Show size of all files" + }, + { + "command": "du -sh .*", + "description": "Show sizes of hidden directories" + } + ], + "Disk Usage": [ + { + "command": "df -h", + "description": "Show disk space usage" + }, + { + "command": "df -i", + "description": "Show inode usage" + }, + { + "command": "df -T", + "description": "Show filesystem type" + } + ], + "Finding Large Files": [ + { + "command": "du -sh /* | sort -rh", + "description": "Find largest directories" + }, + { + "command": "find . -type f -size +100M -exec ls -lh {} \\;", + "description": "Find files larger than 100MB" + } + ], + "Sorting & Reporting": [ + { + "command": "du -sh */ | sort -h", + "description": "Sort directories by size" + }, + { + "command": "du --max-depth=2 -h", + "description": "Show size up to 2 levels deep" + } + ], + "Excluding Paths": [ + { + "command": "du -sh --exclude='*.log' directory/", + "description": "Exclude file pattern" + }, + { + "command": "du -sh --exclude='.git' directory/", + "description": "Exclude directory" + } + ] +} diff --git a/data/fastfetch.json b/data/fastfetch.json index f70bb06..9f6ed7c 100644 --- a/data/fastfetch.json +++ b/data/fastfetch.json @@ -2,10 +2,10 @@ "LOGO": [ { "ascii": [ - "[green] ___ _ _ _ _[/green]", - "[green] | __) _ _ __| |_ | |_ ___| |_ _| |_[/green]", - "[green] | _| | '_|/ _ ' \\| _|/ -_| _|/ _ ' \\[/green]", - "[green] |_| |_| \\__,_||_|\\__|\\___|\\_| \\__,_||_|[/green]" + "[green] ___ _ _[/green]", + "[green] / __| _ _ | |_ | | ___[/green]", + "[green] \\__ \\| || | | _| | |/ -_)[/green]", + "[green] |___/ \\_,_| \\__| |_|\\___|[/green]" ] } ], diff --git a/data/find.json b/data/find.json new file mode 100644 index 0000000..5c6dcec --- /dev/null +++ b/data/find.json @@ -0,0 +1,117 @@ +{ + "LOGO": [ + { + "ascii": [ + "[cyan] ___ ___ ___ __ _ _ __[/cyan]", + "[cyan] | __| |_ _| _ \\/ / | || |/ _\\[/cyan]", + "[cyan] | _| | | | \\/ /_ | \\/ /\\__\\[/cyan]", + "[cyan] |___| |_| |_/\\__/ |__/__|\\__/[/cyan]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " _____ ___ ____ ___ __ __ __ ___", + " | ___||_ | | __|/ _ \\ / / / / / / / -_)", + " | |_ | | | |__ | (_) |/ /__/ /__/ /|__ \\", + " |___| |___||____| \\___/|___|___|__/|_||___/" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "cyan" + }, + "File Creation": [ + { + "command": "find . -name 'pattern'", + "description": "Find files by name" + }, + { + "command": "find . -name '*.txt'", + "description": "Find by file extension" + }, + { + "command": "find . -iname 'pattern'", + "description": "Case-insensitive find" + } + ], + "File Type": [ + { + "command": "find . -type f", + "description": "Find only files" + }, + { + "command": "find . -type d", + "description": "Find only directories" + }, + { + "command": "find . -type l", + "description": "Find symbolic links" + } + ], + "File Size": [ + { + "command": "find . -size +100M", + "description": "Find files larger than 100MB" + }, + { + "command": "find . -size -10k", + "description": "Find files smaller than 10KB" + }, + { + "command": "find . -size 50M", + "description": "Find files exactly 50MB" + } + ], + "File Age": [ + { + "command": "find . -mtime -7", + "description": "Modified in last 7 days" + }, + { + "command": "find . -atime +30", + "description": "Accessed more than 30 days ago" + }, + { + "command": "find . -newer file.txt", + "description": "Find files newer than file.txt" + } + ], + "Permissions": [ + { + "command": "find . -perm -644", + "description": "Find files with specific permissions" + }, + { + "command": "find . -user username", + "description": "Find files owned by user" + } + ], + "Actions": [ + { + "command": "find . -name '*.log' -delete", + "description": "Delete matching files" + }, + { + "command": "find . -name '*.txt' -exec cat {} \\;", + "description": "Execute command on matches" + }, + { + "command": "find . -name '*.jpg' -print0 | xargs -0 ls -lh", + "description": "Pipe results to another command" + } + ], + "Advanced": [ + { + "command": "find . -path '*/dir/*' -name '*.txt'", + "description": "Search in specific path" + }, + { + "command": "find . -not -name '*.log'", + "description": "Exclude pattern (NOT)" + } + ] +} diff --git a/data/git.json b/data/git.json index 271e823..1c90934 100644 --- a/data/git.json +++ b/data/git.json @@ -2,11 +2,11 @@ "LOGO": [ { "ascii": [ - "[yellow] __ (_) _[/yellow]", - "[yellow] / /_/ / /(_)[/yellow]", - "[yellow] / __ / / / [/yellow]", - "[yellow] / / / / / / / [/yellow]", - "[yellow]/_/ /_/_/ /_/ [/yellow]" + "[red] __ (_) _[/red]", + "[red] / /_/ / /(_)[/red]", + "[red] / __ / / / [/red]", + "[red] / / / / / / / [/red]", + "[red] /_/ /_/_/ /_/ [/red]" ] } ], diff --git a/data/go.json b/data/go.json new file mode 100644 index 0000000..2a269c4 --- /dev/null +++ b/data/go.json @@ -0,0 +1,126 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] ___[/blue]", + "[blue] __| __|__[/blue]", + "[blue] / _` |/ _ \\[/blue]", + "[blue] \\__,_|\\___/[/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[blue] ____ _ _ _ _[/blue]", + "[blue] / __ \\ / \\ | | / \\ | |[/blue]", + "[blue] / / / / / _ \\ | | / _ \\ | |[/blue]", + "[blue]/ /_/ / / ___ \\| | / ___ \\ |_|[/blue]", + "[blue]\\____/ /_/ \\_\\_|/_/ \\_(_)[/blue]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "blue" + }, + "Compilation": [ + { + "command": "go build", + "description": "Build the current package" + }, + { + "command": "go build -o binary_name", + "description": "Build with custom output name" + }, + { + "command": "go build ./cmd/app", + "description": "Build from subdirectory" + } + ], + "Running Code": [ + { + "command": "go run main.go", + "description": "Compile and run a Go file" + }, + { + "command": "go run ./cmd/app", + "description": "Run from subdirectory" + } + ], + "Module Management": [ + { + "command": "go mod init github.com/user/project", + "description": "Initialize a new Go module" + }, + { + "command": "go mod tidy", + "description": "Clean up unused dependencies" + }, + { + "command": "go mod download", + "description": "Download module dependencies" + }, + { + "command": "go list -m all", + "description": "List all dependencies" + } + ], + "Dependency Management": [ + { + "command": "go get github.com/user/package", + "description": "Fetch and add a package" + }, + { + "command": "go get -u github.com/user/package", + "description": "Update a package to latest version" + }, + { + "command": "go get github.com/user/package@v1.2.3", + "description": "Get specific version" + } + ], + "Testing": [ + { + "command": "go test", + "description": "Run tests in current package" + }, + { + "command": "go test ./...", + "description": "Run tests in all packages" + }, + { + "command": "go test -v", + "description": "Verbose test output" + }, + { + "command": "go test -cover", + "description": "Show test coverage" + } + ], + "Code Quality": [ + { + "command": "go fmt ./...", + "description": "Format all Go files" + }, + { + "command": "go vet ./...", + "description": "Analyze code for errors" + }, + { + "command": "golint ./...", + "description": "Lint code (requires golint)" + } + ], + "Installation": [ + { + "command": "go install github.com/user/app@latest", + "description": "Install a Go binary" + }, + { + "command": "go install ./cmd/app", + "description": "Install from local source" + } + ] +} diff --git a/data/grep.json b/data/grep.json new file mode 100644 index 0000000..3b67e86 --- /dev/null +++ b/data/grep.json @@ -0,0 +1,98 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] _____ _ _ _ [/blue]", + "[blue] |_ _|_ _ __| (_)__ ___| | | |[/blue]", + "[blue] | | | | | |/ _` | | \\/ -_) |__| |[/blue]", + "[blue] |_| |_|_| \\__,_|_|__/\\___|\\____/ [/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " _____ _ _ _____ _____ _____ _ _ ", + " |_ _| | | | __ \\| __ \\| _ | | | |", + " | | | | | | | | | | | | | | | | | |", + " | | | |_| | | | | | | | |_| | | |_|", + " |_| \\___/|_|__/|_|__/ \\___/|____/|___| " + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "blue" + }, + "Text Search": [ + { + "command": "grep 'pattern' file.txt", + "description": "Search for pattern in file" + }, + { + "command": "grep -i 'pattern' file.txt", + "description": "Case-insensitive search" + }, + { + "command": "grep -n 'pattern' file.txt", + "description": "Show line numbers" + } + ], + "Extended Patterns": [ + { + "command": "grep -E 'regex|pattern' file.txt", + "description": "Use extended regex" + }, + { + "command": "grep -P 'perl_regex' file.txt", + "description": "Use Perl regex patterns" + } + ], + "Search Scope": [ + { + "command": "grep -r 'pattern' /path/to/dir", + "description": "Recursive search in directory" + }, + { + "command": "grep -l 'pattern' *.txt", + "description": "Show only filenames" + }, + { + "command": "grep -c 'pattern' file.txt", + "description": "Count matching lines" + } + ], + "Filtering": [ + { + "command": "grep -v 'pattern' file.txt", + "description": "Invert match (show non-matching)" + }, + { + "command": "grep -A 3 'pattern' file.txt", + "description": "Show 3 lines after match" + }, + { + "command": "grep -B 3 'pattern' file.txt", + "description": "Show 3 lines before match" + }, + { + "command": "grep -C 2 'pattern' file.txt", + "description": "Show 2 lines context (before & after)" + } + ], + "Advanced": [ + { + "command": "grep -w 'word' file.txt", + "description": "Match whole words only" + }, + { + "command": "grep '^pattern' file.txt", + "description": "Match at start of line" + }, + { + "command": "grep 'pattern$' file.txt", + "description": "Match at end of line" + } + ] +} diff --git a/data/make.json b/data/make.json new file mode 100644 index 0000000..f7f0765 --- /dev/null +++ b/data/make.json @@ -0,0 +1,111 @@ +{ + "LOGO": [ + { + "ascii": [ + "[red] __ ___ __ ___ [/red]", + "[red] | \\/ |/ / / -_)[/red]", + "[red] |/\\ /| \\ \\ \\__\\[/red]", + "[red] |/ \\/|_/ \\_\\/_____|[/red]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[red] __ ___ __ ___ ___[/red]", + "[red] | \\/ | |/ / / -_) / -_)[/red]", + "[red] |/\\ /| < \\__ \\\\__ \\[/red]", + "[red] |/ \\/|_| \\_\\ /___/ /___/[/red]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "red" + }, + "Basics": [ + { + "command": "make", + "description": "Run default target (usually 'all')" + }, + { + "command": "make target_name", + "description": "Run specific target" + }, + { + "command": "make -f custom.mk", + "description": "Use custom Makefile" + } + ], + "Variables": [ + { + "command": "make VAR=value target", + "description": "Pass variable to make" + }, + { + "command": "make -e", + "description": "Use environment variables" + }, + { + "command": "make --print-data-base", + "description": "Print all variables and rules" + } + ], + "Targets": [ + { + "command": "make -n target", + "description": "Show commands without executing" + }, + { + "command": "make -B target", + "description": "Force rebuild (ignore timestamps)" + }, + { + "command": "make clean", + "description": "Run clean target (remove build files)" + } + ], + "Parallel Execution": [ + { + "command": "make -j4", + "description": "Run 4 jobs in parallel" + }, + { + "command": "make -j", + "description": "Run unlimited parallel jobs" + } + ], + "Debugging": [ + { + "command": "make --debug=b", + "description": "Show basic debug info" + }, + { + "command": "make -d", + "description": "Print detailed debug info" + }, + { + "command": "make --version", + "description": "Show make version" + } + ], + "Common Targets": [ + { + "command": "make build", + "description": "Build the project" + }, + { + "command": "make test", + "description": "Run tests" + }, + { + "command": "make install", + "description": "Install built binaries" + }, + { + "command": "make uninstall", + "description": "Remove installed files" + } + ] +} diff --git a/data/nvm.json b/data/nvm.json new file mode 100644 index 0000000..579c8f0 --- /dev/null +++ b/data/nvm.json @@ -0,0 +1,105 @@ +{ + "LOGO": [ + { + "ascii": [ + "[green] ____ ____ ____ __ __[/green]", + "[green] / __ \\ / __ \\ | _ \\ / / / /[/green]", + "[green] / / / // /_/ / | | | |\\/ \\/ [/green]", + "[green] / /_/ // __/ | |_| | / [/green]", + "[green] \\____/ /_/ |____/ / [/green]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[green] ____ ___ ____ _ _ __ __[/green]", + "[green] / __ \\ / _ \\| _ \\| | | |/ _` |[/green]", + "[green] / / / // / / | | | | | | | (_| |[/green]", + "[green] / /_/ /| \\_/ | |_| | |_| | |_,_|[/green]", + "[green] \\____/ \\___/|____/ \\__/ \\__,_|[/green]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "green" + }, + "Version Management": [ + { + "command": "nvm --version", + "description": "Show NVM version" + }, + { + "command": "nvm list", + "description": "List installed Node versions" + }, + { + "command": "nvm list-remote", + "description": "List available Node versions" + } + ], + "Installation": [ + { + "command": "nvm install node", + "description": "Install latest Node.js" + }, + { + "command": "nvm install 18.16.0", + "description": "Install specific version" + }, + { + "command": "nvm install 18", + "description": "Install latest from major version" + }, + { + "command": "nvm install --lts", + "description": "Install latest LTS version" + } + ], + "Switching Versions": [ + { + "command": "nvm use 18.16.0", + "description": "Switch to specific version" + }, + { + "command": "nvm use node", + "description": "Use latest version" + }, + { + "command": "nvm use --lts", + "description": "Use latest LTS" + } + ], + "Default Version": [ + { + "command": "nvm alias default 18.16.0", + "description": "Set default Node version" + }, + { + "command": "nvm alias default node", + "description": "Use latest as default" + } + ], + "Uninstall": [ + { + "command": "nvm uninstall 18.16.0", + "description": "Remove a Node version" + }, + { + "command": "nvm uninstall node", + "description": "Uninstall latest version" + } + ], + "Aliases": [ + { + "command": "nvm alias myalias 18.16.0", + "description": "Create custom alias" + }, + { + "command": "nvm alias", + "description": "List all aliases" + } + ] +} diff --git a/data/pip.json b/data/pip.json index 44a08da..92811b9 100644 --- a/data/pip.json +++ b/data/pip.json @@ -2,10 +2,11 @@ "LOGO": [ { "ascii": [ - "[blue] ___ __ ___[/blue]", - "[blue] / _ \\/ / / _ \\[/blue]", - "[blue] / .__/ /_/ .__/[/blue]", - "[blue] /_/ \\____/_/ [/blue]" + "[yellow] ___[/yellow]", + "[yellow] / _ \\[/yellow]", + "[yellow] / /__/[/yellow]", + "[yellow] / __ \\ [/yellow]", + "[yellow] /_/ \\_\\[/yellow]" ] } ], diff --git a/data/poetry.json b/data/poetry.json new file mode 100644 index 0000000..68dccad --- /dev/null +++ b/data/poetry.json @@ -0,0 +1,123 @@ +{ + "LOGO": [ + { + "ascii": [ + "[cyan] ___ _ [/cyan]", + "[cyan] / _ \\ ___ ___ | |_ _ __ [/cyan]", + "[cyan] / /_)/ _ \\ / -_| __|| '_ \\ [/cyan]", + "[cyan] / ___/ (_) |\\___|\\__|| .__/ [/cyan]", + "[cyan] /_/ \\___/| |____||_| [/cyan]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ____ ___ ___ ______ ______ _ __ ", + " | _ \\/ _ \\ / _ \\| ____|_ _| | | ___| ", + " | |_| | | | | (_) | |_ | | | | |/ /| ", + " | __/| | | |\\___/| _| | | | | < | ", + " | | \\ \\_/ | | | _| |_| | |\\ \\ ", + " |_| \\___/ |_| |_____|_| |_|\\_\\ ", + " " + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "cyan" + }, + "Project Setup": [ + { + "command": "poetry new project_name", + "description": "Create a new poetry project with structure" + }, + { + "command": "poetry init", + "description": "Initialize poetry in current directory" + }, + { + "command": "poetry config --list", + "description": "Show all poetry configurations" + } + ], + "Dependency Management": [ + { + "command": "poetry add package_name", + "description": "Add a dependency to the project" + }, + { + "command": "poetry add --group dev pytest black", + "description": "Add dev dependencies" + }, + { + "command": "poetry add 'package_name>=1.0,<2.0'", + "description": "Add with version constraints" + }, + { + "command": "poetry remove package_name", + "description": "Remove a dependency" + } + ], + "Virtual Environments": [ + { + "command": "poetry install", + "description": "Install dependencies from poetry.lock" + }, + { + "command": "poetry install --no-dev", + "description": "Install without dev dependencies" + }, + { + "command": "poetry env use python3.10", + "description": "Use specific Python version" + }, + { + "command": "poetry env info", + "description": "Show virtual environment info" + } + ], + "Running Code": [ + { + "command": "poetry run python script.py", + "description": "Run command in poetry environment" + }, + { + "command": "poetry shell", + "description": "Activate poetry shell" + } + ], + "Lock & Update": [ + { + "command": "poetry update", + "description": "Update all dependencies" + }, + { + "command": "poetry update package_name", + "description": "Update specific package" + }, + { + "command": "poetry lock", + "description": "Generate lock file" + }, + { + "command": "poetry show", + "description": "Show installed packages" + } + ], + "Building & Publishing": [ + { + "command": "poetry build", + "description": "Build distribution packages" + }, + { + "command": "poetry publish", + "description": "Publish to PyPI" + }, + { + "command": "poetry publish -r test", + "description": "Publish to test repository" + } + ] +} diff --git a/data/rsync.json b/data/rsync.json new file mode 100644 index 0000000..0034774 --- /dev/null +++ b/data/rsync.json @@ -0,0 +1,99 @@ +{ + "LOGO": [ + { + "ascii": [ + "[cyan] ___ _ _ ___[/cyan]", + "[cyan] / __|| | | |/ -_)[/cyan]", + "[cyan] | (__ | |_| |\\___\\[/cyan]", + "[cyan] \\__| |___/|_|___/[/cyan]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[cyan] ____ _ _ _ _[/cyan]", + "[cyan] / __ \\ | | | | | | | |[/cyan]", + "[cyan] / / / / | |_| | | |_| |[/cyan]", + "[cyan]/_/ /_/ \\___/ \\___,_|[/cyan]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "cyan" + }, + "File Synchronization": [ + { + "command": "rsync -av source/ destination/", + "description": "Sync directories (archive verbose)" + }, + { + "command": "rsync -av --delete source/ destination/", + "description": "Sync and delete extra files in destination" + }, + { + "command": "rsync -avz source/ destination/", + "description": "Sync with compression" + } + ], + "Remote Synchronization": [ + { + "command": "rsync -av source/ user@host:/remote/path/", + "description": "Sync to remote server" + }, + { + "command": "rsync -av user@host:/remote/path/ destination/", + "description": "Sync from remote server" + }, + { + "command": "rsync -av -e ssh source/ user@host:/path/", + "description": "Sync over SSH" + } + ], + "Filtering": [ + { + "command": "rsync -av --exclude='*.log' source/ destination/", + "description": "Exclude file pattern" + }, + { + "command": "rsync -av --include='*.txt' --exclude='*' source/ destination/", + "description": "Include only specific pattern" + }, + { + "command": "rsync -av --filter=':- .gitignore' source/ destination/", + "description": "Use .gitignore rules" + } + ], + "Performance": [ + { + "command": "rsync -av --partial source/ destination/", + "description": "Keep partial transfers (useful for resume)" + }, + { + "command": "rsync -avz --bwlimit=1000 source/ destination/", + "description": "Limit bandwidth to 1000 KB/s" + } + ], + "Dry Run & Testing": [ + { + "command": "rsync -av --dry-run source/ destination/", + "description": "Preview what would be synced" + }, + { + "command": "rsync -av --itemize-changes source/ destination/", + "description": "Show detailed changes" + } + ], + "Advanced": [ + { + "command": "rsync -av --backup --backup-dir=./backups source/ destination/", + "description": "Create backups before overwriting" + }, + { + "command": "rsync -av --checksum source/ destination/", + "description": "Check with checksum instead of timestamp" + } + ] +} diff --git a/data/sdkman.json b/data/sdkman.json new file mode 100644 index 0000000..2a401c4 --- /dev/null +++ b/data/sdkman.json @@ -0,0 +1,97 @@ +{ + "LOGO": [ + { + "ascii": [ + "[blue] ___ ___ ___ ____ __ __ ___ _ _ [/blue]", + "[blue] / __|| _\\ / -_)|| _|| | \\/ \\ / -_)| | | | [/blue]", + "[blue] | (_ || |_ \\\\__ \\\\| |_ | | / _ \\ |__ \\\\ |/ / [/blue]", + "[blue] \\___||___/|___/ |___||_| / ___ \\\\ |_| | < [/blue]", + "[blue] / / \\\\ \\\\ [/blue]", + "[blue] /_/ \\\\_\\\\ [/blue]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[blue] ____ ____ _ _ _ _ ___ __ ___ _ _[/blue]", + "[blue] / ___|| _ \\| |/ /| \\/ |/ _ \\ | \\| _\\| | | |[/blue]", + "[blue] \\___ \\| | | | < | () < | __/| | | |_ | |_| |[/blue]", + "[blue] |___/|_| |_|_|\\_\\|_||_/\\___|\\__|_|___\\\\___| \\___/[/blue]" + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "blue" + }, + "Setup & Configuration": [ + { + "command": "curl -s \"https://get.sdkman.io\" | bash", + "description": "Install SDKMAN" + }, + { + "command": "source \"$HOME/.sdkman/bin/sdkman-init.sh\"", + "description": "Initialize SDKMAN" + } + ], + "SDK Listing": [ + { + "command": "sdk list", + "description": "List available SDKs" + }, + { + "command": "sdk list java", + "description": "List available Java versions" + }, + { + "command": "sdk list maven", + "description": "List available Maven versions" + } + ], + "Installation": [ + { + "command": "sdk install java 21-tem", + "description": "Install Java 21 (Temurin)" + }, + { + "command": "sdk install maven 3.9.0", + "description": "Install Maven 3.9.0" + }, + { + "command": "sdk install gradle 8.1.1", + "description": "Install Gradle 8.1.1" + } + ], + "Default Version": [ + { + "command": "sdk default java 21-tem", + "description": "Set Java 21 as default" + } + ], + "Updates & Cleanup": [ + { + "command": "sdk upgrade java", + "description": "Upgrade to latest Java" + }, + { + "command": "sdk uninstall java 20", + "description": "Remove specific version" + }, + { + "command": "sdk selfupdate", + "description": "Update SDKMAN itself" + } + ], + "Offline Mode": [ + { + "command": "sdk offline enable", + "description": "Enable offline mode" + }, + { + "command": "sdk offline disable", + "description": "Disable offline mode" + } + ] +} diff --git a/data/ssh.json b/data/ssh.json new file mode 100644 index 0000000..bebd19a --- /dev/null +++ b/data/ssh.json @@ -0,0 +1,125 @@ +{ + "LOGO": [ + { + "ascii": [ + "[green] ___ ___ __ __[/green]", + "[green] / __\\( _)( ( )[/green]", + "[green] ( (__ ) _) )()( [/green]", + "[green] \\___|(___)(__)(__)__ [/green]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[green] ___ ___ __ __[/green]", + "[green] / __\\( _)( ( )[/green]", + "[green] ( (__ ) _) )()( [/green]", + "[green] \\___|(___)(__)(__)__[/green]" + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "green" + }, + "Connecting": [ + { + "command": "ssh user@host", + "description": "Connect to remote server" + }, + { + "command": "ssh -p 2222 user@host", + "description": "Connect on custom port" + }, + { + "command": "ssh -i /path/to/key user@host", + "description": "Connect using specific key" + } + ], + "Key Management": [ + { + "command": "ssh-keygen -t rsa -b 4096", + "description": "Generate new RSA SSH key" + }, + { + "command": "ssh-keygen -t ed25519", + "description": "Generate ED25519 SSH key (recommended)" + }, + { + "command": "ssh-copy-id -i ~/.ssh/id_rsa.pub user@host", + "description": "Copy public key to remote server" + } + ], + "Key Operations": [ + { + "command": "ssh-keygen -l -f ~/.ssh/id_rsa.pub", + "description": "Show key fingerprint" + }, + { + "command": "ssh-keygen -p -f ~/.ssh/id_rsa", + "description": "Change key passphrase" + }, + { + "command": "ssh-keygen -R hostname", + "description": "Remove host from known_hosts" + } + ], + "SSH Agent": [ + { + "command": "eval $(ssh-agent -s)", + "description": "Start SSH agent" + }, + { + "command": "ssh-add ~/.ssh/id_rsa", + "description": "Add key to SSH agent" + }, + { + "command": "ssh-add -l", + "description": "List keys in SSH agent" + }, + { + "command": "ssh-add -D", + "description": "Remove all keys from agent" + } + ], + "File Transfer": [ + { + "command": "scp file.txt user@host:/remote/path/", + "description": "Copy file to remote server" + }, + { + "command": "scp user@host:/remote/file.txt .", + "description": "Copy file from remote server" + }, + { + "command": "scp -r folder/ user@host:/remote/path/", + "description": "Copy directory recursively" + } + ], + "Tunneling": [ + { + "command": "ssh -L 8080:localhost:80 user@host", + "description": "Local port forwarding" + }, + { + "command": "ssh -R 8080:localhost:80 user@host", + "description": "Remote port forwarding" + }, + { + "command": "ssh -D 1080 user@host", + "description": "Create SOCKS proxy" + } + ], + "Configuration": [ + { + "command": "cat ~/.ssh/config", + "description": "Show SSH config" + }, + { + "command": "ssh-keyscan -H host >> ~/.ssh/known_hosts", + "description": "Add host key to known_hosts" + } + ] +} diff --git a/data/sudo.json b/data/sudo.json new file mode 100644 index 0000000..7ff18fb --- /dev/null +++ b/data/sudo.json @@ -0,0 +1,103 @@ +{ + "LOGO": [ + { + "ascii": [ + "[green] ___ _ _ ___ ___ _ _[/green]", + "[green] / __|| | | |/ __|| _\\| | | |[/green]", + "[green] \\__ \\| |_| |\\__ \\| |_ | |_| |[/green]", + "[green] |___/\\__,_||___/|___/\\__,_/ [/green]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[green] ____ _ _ ____ ___ ___[/green]", + "[green] / ___|| | | || _ \\/ __|| _|[/green]", + "[green] | | | |_| ||__) |\\__ \\| |_[/green]", + "[green] \\__| \\___/ |____/|___/|____|[/green]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "green" + }, + "Running Commands": [ + { + "command": "sudo command", + "description": "Run command as superuser" + }, + { + "command": "sudo -u username command", + "description": "Run command as specific user" + }, + { + "command": "sudo -E command", + "description": "Preserve environment variables" + } + ], + "Password Behavior": [ + { + "command": "sudo -S command", + "description": "Read password from stdin" + }, + { + "command": "sudo -i", + "description": "Interactive shell with login" + }, + { + "command": "sudo -s", + "description": "Interactive shell without login" + } + ], + "Privileges": [ + { + "command": "sudo -l", + "description": "List user's sudo permissions" + }, + { + "command": "sudo -ll", + "description": "List with command details" + }, + { + "command": "sudo -v", + "description": "Update sudo password timeout" + } + ], + "Multiple Commands": [ + { + "command": "sudo command1 && sudo command2", + "description": "Run multiple commands sequentially" + }, + { + "command": "sudo sh -c 'command1 && command2'", + "description": "Run multiple commands in one shell" + } + ], + "Configuration": [ + { + "command": "sudo visudo", + "description": "Edit sudoers file (SAFE)" + }, + { + "command": "sudo -k", + "description": "Invalidate sudo timestamp" + }, + { + "command": "sudo -K", + "description": "Remove timestamp file" + } + ], + "Logging": [ + { + "command": "sudo journalctl --user=sudo", + "description": "View sudo logs" + }, + { + "command": "sudo tail -f /var/log/auth.log", + "description": "Monitor authentication logs" + } + ] +} diff --git a/data/systemctl.json b/data/systemctl.json new file mode 100644 index 0000000..ca314d3 --- /dev/null +++ b/data/systemctl.json @@ -0,0 +1,107 @@ +{ + "LOGO": [ + { + "ascii": [ + "[magenta] _____[/magenta]", + "[magenta] / ___/ _ _ ___ _[/magenta]", + "[magenta] \\___ \\| | | |/ __|| |[/magenta]", + "[magenta] ___) | |_| |\\__ \\| |[/magenta]", + "[magenta] |____/ \\__,_||___/|_|[/magenta]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[magenta] ___ _ _ ___ ___ _____ ___ ____ _[/magenta]", + "[magenta] / __)| | | || _||_ |/ __ |/ -_|| _ \\| |[/magenta]", + "[magenta] | (__ | |_| || |_| | | |_) / | | | | )| |__[/magenta]", + "[magenta] \\___| \\___/ |___/|_| | __/| | | |_) | |____)[/magenta]", + "[magenta] |_| |_| |____/ |______|[/magenta]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "magenta" + }, + "Service Management": [ + { + "command": "systemctl start service_name", + "description": "Start a service" + }, + { + "command": "systemctl stop service_name", + "description": "Stop a service" + }, + { + "command": "systemctl restart service_name", + "description": "Restart a service" + }, + { + "command": "systemctl reload service_name", + "description": "Reload service configuration" + } + ], + "Service Status": [ + { + "command": "systemctl status service_name", + "description": "Show service status" + }, + { + "command": "systemctl is-active service_name", + "description": "Check if service is active" + }, + { + "command": "systemctl is-enabled service_name", + "description": "Check if service is enabled" + } + ], + "Enabling & Disabling": [ + { + "command": "systemctl enable service_name", + "description": "Enable service on boot" + }, + { + "command": "systemctl disable service_name", + "description": "Disable service on boot" + }, + { + "command": "systemctl unmask service_name", + "description": "Unmask a masked service" + }, + { + "command": "systemctl mask service_name", + "description": "Prevent service from being started" + } + ], + "Listing Services": [ + { + "command": "systemctl list-units --type=service", + "description": "List all services" + }, + { + "command": "systemctl list-units --type=service --state=running", + "description": "List running services" + }, + { + "command": "systemctl list-unit-files --type=service", + "description": "List service files" + } + ], + "Troubleshooting": [ + { + "command": "systemctl show service_name", + "description": "Show detailed service info" + }, + { + "command": "journalctl -u service_name", + "description": "View service logs" + }, + { + "command": "journalctl -u service_name -f", + "description": "Follow service logs in real-time" + } + ] +} diff --git a/data/tar.json b/data/tar.json new file mode 100644 index 0000000..2fb6de4 --- /dev/null +++ b/data/tar.json @@ -0,0 +1,103 @@ +{ + "LOGO": [ + { + "ascii": [ + "[magenta] ______ _[/magenta]", + "[magenta] | ____| ___ | |[/magenta]", + "[magenta] | |__ / _ \\ | |[/magenta]", + "[magenta] | __| | __/ |_|[/magenta]", + "[magenta] | |___ \\___ |_| [/magenta]", + "[magenta] |_____| ___/ [/magenta]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + " ____ ___ _ __ _ _ ____ _ ___ ", + " | _ \\/ -_)| |/ / | || || _ \\| |/ -_) ", + " | .__/\\___|__,_/ |__||_||_) /_/_|\\___| ", + " |_| |___/ " + ] + } + ], + "STYLE": { + "command_width": 40, + "outer_width": 140, + "primary_color": "magenta" + }, + "Archiving": [ + { + "command": "tar -cf archive.tar files/", + "description": "Create tar archive" + }, + { + "command": "tar -xf archive.tar", + "description": "Extract tar archive" + }, + { + "command": "tar -tf archive.tar", + "description": "List tar contents" + } + ], + "Compression with tar": [ + { + "command": "tar -czf archive.tar.gz files/", + "description": "Create gzip compressed tar" + }, + { + "command": "tar -xzf archive.tar.gz", + "description": "Extract gzip tar" + }, + { + "command": "tar -cjf archive.tar.bz2 files/", + "description": "Create bzip2 compressed tar" + }, + { + "command": "tar -xjf archive.tar.bz2", + "description": "Extract bzip2 tar" + } + ], + "ZIP Files": [ + { + "command": "zip -r archive.zip folder/", + "description": "Create ZIP archive" + }, + { + "command": "unzip archive.zip", + "description": "Extract ZIP archive" + }, + { + "command": "unzip -l archive.zip", + "description": "List ZIP contents" + }, + { + "command": "unzip -t archive.zip", + "description": "Test ZIP integrity" + } + ], + "Gzip Compression": [ + { + "command": "gzip file.txt", + "description": "Compress file to .gz" + }, + { + "command": "gunzip file.txt.gz", + "description": "Decompress .gz file" + }, + { + "command": "gzip -d file.txt.gz", + "description": "Decompress (alternative)" + } + ], + "Advanced tar": [ + { + "command": "tar -czf - files/ | ssh user@host 'tar -xz -C /remote/path'", + "description": "Compress and pipe to remote" + }, + { + "command": "tar --exclude='*.log' -czf archive.tar.gz folder/", + "description": "Archive excluding patterns" + } + ] +} diff --git a/data/useradd.json b/data/useradd.json new file mode 100644 index 0000000..4457037 --- /dev/null +++ b/data/useradd.json @@ -0,0 +1,127 @@ +{ + "LOGO": [ + { + "ascii": [ + "[yellow] _____ _ _ [/yellow]", + "[yellow] | _ | | | | | [/yellow]", + "[yellow] | |_| | | |_| | [/yellow]", + "[yellow] |_____| |_____| [/yellow]" + ] + } + ], + "TITLE": [ + { + "ascii": [ + "[yellow] ____ ___ ____ ___ _ _[/yellow]", + "[yellow] / __ \\ / -_|| _/ / -_)| | | |[/yellow]", + "[yellow] / / / /| |_ || |_ | |__ | |_| |[/yellow]", + "[yellow]/_/ /_/ |___||____\\ \\___| \\__/[/yellow]" + ] + } + ], + "STYLE": { + "command_width": 35, + "outer_width": 140, + "primary_color": "yellow" + }, + "User Management": [ + { + "command": "sudo useradd username", + "description": "Create new user" + }, + { + "command": "sudo useradd -m -s /bin/bash username", + "description": "Create user with home dir and shell" + }, + { + "command": "sudo userdel username", + "description": "Delete user" + }, + { + "command": "sudo userdel -r username", + "description": "Delete user and home directory" + } + ], + "User Info": [ + { + "command": "id", + "description": "Show current user ID and groups" + }, + { + "command": "id username", + "description": "Show user ID and groups" + }, + { + "command": "finger username", + "description": "Show user information" + }, + { + "command": "who", + "description": "List logged-in users" + } + ], + "Group Management": [ + { + "command": "sudo groupadd groupname", + "description": "Create new group" + }, + { + "command": "sudo groupdel groupname", + "description": "Delete group" + }, + { + "command": "sudo usermod -a -G groupname username", + "description": "Add user to group" + }, + { + "command": "groups username", + "description": "Show user groups" + } + ], + "Password Management": [ + { + "command": "passwd", + "description": "Change current user password" + }, + { + "command": "sudo passwd username", + "description": "Change user password" + }, + { + "command": "sudo usermod -L username", + "description": "Lock user account" + }, + { + "command": "sudo usermod -U username", + "description": "Unlock user account" + } + ], + "Sudo Configuration": [ + { + "command": "sudo visudo", + "description": "Edit sudoers file safely" + }, + { + "command": "sudo -l", + "description": "List user sudo privileges" + }, + { + "command": "sudo -i", + "description": "Switch to root user (interactive)" + } + ], + "File Ownership": [ + { + "command": "chown username file.txt", + "description": "Change file owner" + }, + { + "command": "chown username:groupname file.txt", + "description": "Change owner and group" + }, + { + "command": "chown -R username directory/", + "description": "Recursively change ownership" + } + ] +} diff --git a/data/uv.json b/data/uv.json index e4e3026..b7a0ca2 100644 --- a/data/uv.json +++ b/data/uv.json @@ -2,9 +2,11 @@ "LOGO": [ { "ascii": [ - "[magenta] __ ____[/magenta]", - "[magenta]/ / / / /[/magenta]", - "[magenta]\\/ \\/ \\/ [/magenta]" + "[magenta] _ _ __[/magenta]", + "[magenta] | | | | / /[/magenta]", + "[magenta] | | | |/ / [/magenta]", + "[magenta] | | | < [/magenta]", + "[magenta] |_| |_|\\_\\ [/magenta]" ] } ], From f1e4d6186d779b146fd9288fc2003ee16c00f1a5 Mon Sep 17 00:00:00 2001 From: Tajeddine Bourhim Date: Sun, 25 Jan 2026 22:22:55 +0100 Subject: [PATCH 3/3] Enhance ASCII Art Logos and Titles for Various JSON Files - Updated ASCII art logos and titles in conda.json, curl.json, distrobox.json, du.json, fastfetch.json, find.json, git.json, go.json, grep.json, make.json, nvm.json, pip.json, poetry.json, rsync.json, sdkman.json, ssh.json, sudo.json, systemctl.json, tar.json, useradd.json, and uv.json. - Improved visual representation with new designs for better branding and user experience. --- data/asdf.json | 19 +++++++++++-------- data/cargo.json | 21 ++++++++++++--------- data/conda.json | 21 +++++++++++---------- data/curl.json | 21 +++++++++++---------- data/distrobox.json | 22 +++++++++++----------- data/du.json | 19 +++++++++++-------- data/fastfetch.json | 20 +++++++++++--------- data/find.json | 19 +++++++++++-------- data/git.json | 23 ++++++++++++----------- data/go.json | 20 +++++++++++--------- data/grep.json | 21 ++++++++++++--------- data/make.json | 19 +++++++++++-------- data/nvm.json | 21 +++++++++++---------- data/pip.json | 22 ++++++++++++---------- data/poetry.json | 24 ++++++++++++------------ data/rsync.json | 20 ++++++++++++-------- data/sdkman.json | 21 +++++++++++---------- data/ssh.json | 19 +++++++++++-------- data/sudo.json | 19 +++++++++++-------- data/systemctl.json | 22 ++++++++++++---------- data/tar.json | 21 +++++++++++---------- data/useradd.json | 18 ++++++++++-------- data/uv.json | 21 +++++++++++---------- 23 files changed, 259 insertions(+), 214 deletions(-) diff --git a/data/asdf.json b/data/asdf.json index 8d22aa2..2960d36 100644 --- a/data/asdf.json +++ b/data/asdf.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[blue] _ _ ___ _[/blue]", - "[blue] /_\\ __| || __|| |[/blue]", - "[blue] / _ \\/ _` || _| | |[/blue]", - "[blue] /_/ \\_\\__,_||_| |_|[/blue]" + "[blue] █████╗ ███████╗██████╗ ███████╗[/blue]", + "[blue] ██╔══██╗██╔════╝██╔══██╗██╔════╝[/blue]", + "[blue] ███████║███████╗██║ ██║█████╗ [/blue]", + "[blue] ██╔══██║╚════██║██║ ██║██╔══╝ [/blue]", + "[blue] ██║ ██║███████║██████╔╝██║ [/blue]", + "[blue] ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝ [/blue]" ] } ], "TITLE": [ { "ascii": [ - "[blue] _ ____ ___ ___ ___[/blue]", - "[blue] / \\ | _ \\/ __|| _|| _\\[/blue]", - "[blue] / _ \\ | ___/\\__ \\ | |_ | |_[/blue]", - "[blue] / ___ \\|_| |___/ |___||____|[/blue]" + " _ __ ", + " __ _ ___ __| |/ _|", + " / _` / __|/ _` | |_ ", + " | (_| \\__ \\ (_| | _|", + " \\__,_|___/\\__,_|_| " ] } ], diff --git a/data/cargo.json b/data/cargo.json index 10e8c12..e9fff1a 100644 --- a/data/cargo.json +++ b/data/cargo.json @@ -2,21 +2,24 @@ "LOGO": [ { "ascii": [ - "[red] ___ [/red]", - "[red] / __| __ _ _ _ __ _ ___ [/red]", - "[red] | (__ / _` || '_| / _` |/ _ \\ [/red]", - "[red] \\___/\\__,_||_| \\__,_|\\___/ [/red]" + "[red] ██████╗ █████╗ ██████╗ ██████╗ ██████╗ [/red]", + "[red] ██╔════╝██╔══██╗██╔══██╗██╔════╝ ██╔═══██╗[/red]", + "[red] ██║ ███████║██████╔╝██║ ███╗██║ ██║[/red]", + "[red] ██║ ██╔══██║██╔══██╗██║ ██║██║ ██║[/red]", + "[red] ╚██████╗██║ ██║██║ ██║╚██████╔╝╚██████╔╝[/red]", + "[red] ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ [/red]" ] } ], "TITLE": [ { "ascii": [ - "[red] ____ ___ ___ ____ __[/red]", - "[red] / ___||_ |/ _ \\| _ \\/ /[/red]", - "[red] | | | | | | | |_| \\ \\[/red]", - "[red] | |___ | | |_| | __/ \\[/red]", - "[red] \\____| |_|\\___/|_| |_|[/red]" + " ____ ", + " / ___|__ _ _ __ __ _ ___ ", + " | | / _` | '__/ _` |/ _ \\ ", + " | |__| (_| | | | (_| | (_) | ", + " \\____\\__,_|_| \\__, |\\___/ ", + " |___/ " ] } ], diff --git a/data/conda.json b/data/conda.json index 9785de6..e75d91f 100644 --- a/data/conda.json +++ b/data/conda.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[green] ___ _ _ ___[/green]", - "[green] / __\\ ___ _ __ __| | / \\\\ \\\\[/green]", - "[green] / / / / _ \\| '_ \\ / _` | / _ \\ |[/green]", - "[green] / /__| (_) | | | | (_| | / ___ \\ /[/green]", - "[green] \\____/\\___/|_| |_|\\__,_|/_/ \\_\\/[/green]" + "[green] ██████╗ ██████╗ ███╗ ██╗██████╗ █████╗ [/green]", + "[green] ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗[/green]", + "[green] ██║ ██║ ██║██╔██╗ ██║██║ ██║███████║[/green]", + "[green] ██║ ██║ ██║██║╚██╗██║██║ ██║██╔══██║[/green]", + "[green] ╚██████╗╚██████╔╝██║ ╚████║██████╔╝██║ ██║[/green]", + "[green] ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝ ╚═╝ ╚═╝[/green]" ] } ], "TITLE": [ { "ascii": [ - " ___ __ __ ___ ___ __ ", - " / __|| \\/ || _ \\ / _ \\ / \\ ", - "| (__ | () () || _/| (_) | | ", - " \\___||__/\\__||_| \\___/|_/\\_\\ ", - " " + " ____ _ ", + " / ___|___ _ __ __| | __ _ ", + " | | / _ \\| '_ \\ / _` |/ _` |", + " | |__| (_) | | | | (_| | (_| |", + " \\____\\___/|_| |_|\\__,_|\\__,_|" ] } ], diff --git a/data/curl.json b/data/curl.json index 74cd626..45baf3a 100644 --- a/data/curl.json +++ b/data/curl.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[yellow] _______________[/yellow]", - "[yellow]| _____ _____ |[/yellow]", - "[yellow]|| ___||__ || |[/yellow]", - "[yellow]||| |_____|[/yellow]", - "[yellow]|_____.|_____|_|[/yellow]" + "[yellow] ██████╗██╗ ██╗██████╗ ██╗ [/yellow]", + "[yellow] ██╔════╝██║ ██║██╔══██╗██║ [/yellow]", + "[yellow] ██║ ██║ ██║██████╔╝██║ [/yellow]", + "[yellow] ██║ ██║ ██║██╔══██╗██║ [/yellow]", + "[yellow] ╚██████╗╚██████╔╝██║ ██║███████╗[/yellow]", + "[yellow] ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝[/yellow]" ] } ], "TITLE": [ { "ascii": [ - "[yellow] ____ ___ _[/yellow]", - "[yellow] / __ | | | | / _ \\ (_)[/yellow]", - "[yellow] / / / | |_| |/ / / / | |[/yellow]", - "[yellow]/ /_/ | __ / /_/ / | |[/yellow]", - "[yellow]\\____/|_| |_|\\___/_| |_|[/yellow]" + " ____ _ ", + " / ___| _ _ __| |", + " | | | | | | '__| |", + " | |__| |_| | | | |", + " \\____\\__,_|_| |_|" ] } ], diff --git a/data/distrobox.json b/data/distrobox.json index f1aa991..8d974a1 100644 --- a/data/distrobox.json +++ b/data/distrobox.json @@ -2,23 +2,23 @@ "LOGO": [ { "ascii": [ - "[blue] | \\ ___|[/blue]", - "[blue] | \\ | [/blue]", - "[blue] | \\ | __|[/blue]", - "[blue] | | \\ | [/blue]", - "[blue] _|\\_| \\_\\____|[/blue]" + "[blue] ██████╗ ██╗███████╗████████╗██████╗ ██████╗ [/blue]", + "[blue] ██╔══██╗██║██╔════╝╚══██╔══╝██╔══██╗██╔═══██╗[/blue]", + "[blue] ██║ ██║██║███████╗ ██║ ██████╔╝██║ ██║[/blue]", + "[blue] ██║ ██║██║╚════██║ ██║ ██╔══██╗██║ ██║[/blue]", + "[blue] ██████╔╝██║███████║ ██║ ██║ ██║╚██████╔╝[/blue]", + "[blue] ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ [/blue]" ] } ], "TITLE": [ { "ascii": [ - " ____ _ _ ", - " | _ \\(_)___| |_ _ __ ___ _ ___ _.._ __ ", - " | | | | / __| __| '__/ _ \\| | | \\ \\/ / '__| ", - " | |_| | \\__ \\ |_| | | (_) | |_| |> <| | ", - " |____/|_|___/\\__|_| \\___/ \\__, /_/\\_\\_| ", - " |___/ " + " ____ _ _ _ ", + " | _ \\(_)___| |_ _ __ ___ | |__ _____ __", + " | | | | / __| __| '__/ _ \\| '_ \\ / _ \\ \\/ /", + " | |_| | \\__ \\ |_| | | (_) | |_) | (_) > < ", + " |____/|_|___/\\__|_| \\___/|_.__/ \\___/_/\\_\\" ] } ], diff --git a/data/du.json b/data/du.json index 97eaba9..5e85ef8 100644 --- a/data/du.json +++ b/data/du.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[magenta] ____ ____ ___ _____ [/magenta]", - "[magenta] | __|| __| / __|| _ | [/magenta]", - "[magenta] | |__ | |__ | (__ | |_| | [/magenta]", - "[magenta] |____||____| \\___|\\___/ [/magenta]" + "[magenta] ██████╗ ██╗ ██╗[/magenta]", + "[magenta] ██╔══██╗██║ ██║[/magenta]", + "[magenta] ██║ ██║██║ ██║[/magenta]", + "[magenta] ██║ ██║██║ ██║[/magenta]", + "[magenta] ██████╔╝╚██████╔╝[/magenta]", + "[magenta] ╚═════╝ ╚═════╝ [/magenta]" ] } ], "TITLE": [ { "ascii": [ - "[magenta] ____ __ __ ___ _____[/magenta]", - "[magenta] | __| \\ \\ / / / __||_ _|[/magenta]", - "[magenta] | |__ \\ V / \\__ \\ | |[/magenta]", - "[magenta] |____| \\_/ |___/ |_|[/magenta]" + " _ ", + " __| |_ _ ", + " / _` | | | |", + " | (_| | |_| |", + " \\__,_|\\__,_|" ] } ], diff --git a/data/fastfetch.json b/data/fastfetch.json index 9f6ed7c..e86fee4 100644 --- a/data/fastfetch.json +++ b/data/fastfetch.json @@ -2,21 +2,23 @@ "LOGO": [ { "ascii": [ - "[green] ___ _ _[/green]", - "[green] / __| _ _ | |_ | | ___[/green]", - "[green] \\__ \\| || | | _| | |/ -_)[/green]", - "[green] |___/ \\_,_| \\__| |_|\\___|[/green]" + "[cyan] ███████╗ █████╗ ███████╗████████╗[/cyan]", + "[cyan] ██╔════╝██╔══██╗██╔════╝╚══██╔══╝[/cyan]", + "[cyan] █████╗ ███████║███████╗ ██║ [/cyan]", + "[cyan] ██╔══╝ ██╔══██║╚════██║ ██║ [/cyan]", + "[cyan] ██║ ██║ ██║███████║ ██║ [/cyan]", + "[cyan] ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ [/cyan]" ] } ], "TITLE": [ { "ascii": [ - " ___ _ _ _ _", - " | _| ___ ___| |_ / \\ ___ _ _ | |__ | |", - " | | / _ \\/ __| __// \\/ -_)| | | | __| | |", - " |_| \\___/\\__ \\__//_||_\\\\___|\\__|_|_|\\__|_|_|", - " " + " _____ _ __ _ _ ", + " | ___|_ _ ___| |_ / _| ___| |_ ___| |__ ", + " | |_ / _` / __| __| |_ / _ \\ __/ __| '_ \\ ", + " | _| (_| \\__ \\ |_| _| __/ || (__| | | |", + " |_| \\__,_|___/\\__|_| \\___|\\__\\___|_| |_|" ] } ], diff --git a/data/find.json b/data/find.json index 5c6dcec..47ef702 100644 --- a/data/find.json +++ b/data/find.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[cyan] ___ ___ ___ __ _ _ __[/cyan]", - "[cyan] | __| |_ _| _ \\/ / | || |/ _\\[/cyan]", - "[cyan] | _| | | | \\/ /_ | \\/ /\\__\\[/cyan]", - "[cyan] |___| |_| |_/\\__/ |__/__|\\__/[/cyan]" + "[cyan] ███████╗██╗███╗ ██╗██████╗ [/cyan]", + "[cyan] ██╔════╝██║████╗ ██║██╔══██╗[/cyan]", + "[cyan] █████╗ ██║██╔██╗ ██║██║ ██║[/cyan]", + "[cyan] ██╔══╝ ██║██║╚██╗██║██║ ██║[/cyan]", + "[cyan] ██║ ██║██║ ╚████║██████╔╝[/cyan]", + "[cyan] ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ [/cyan]" ] } ], "TITLE": [ { "ascii": [ - " _____ ___ ____ ___ __ __ __ ___", - " | ___||_ | | __|/ _ \\ / / / / / / / -_)", - " | |_ | | | |__ | (_) |/ /__/ /__/ /|__ \\", - " |___| |___||____| \\___/|___|___|__/|_||___/" + " _____ _ _ ", + " | ___(_)_ __ __| |", + " | |_ | | '_ \\ / _` |", + " | _| | | | | | (_| |", + " |_| |_|_| |_|\\__,_|" ] } ], diff --git a/data/git.json b/data/git.json index 1c90934..43549f6 100644 --- a/data/git.json +++ b/data/git.json @@ -2,23 +2,24 @@ "LOGO": [ { "ascii": [ - "[red] __ (_) _[/red]", - "[red] / /_/ / /(_)[/red]", - "[red] / __ / / / [/red]", - "[red] / / / / / / / [/red]", - "[red] /_/ /_/_/ /_/ [/red]" + "[red] ██████╗ ██╗████████╗[/red]", + "[red] ██╔════╝ ██║╚══██╔══╝[/red]", + "[red] ██║ ███╗██║ ██║ [/red]", + "[red] ██║ ██║██║ ██║ [/red]", + "[red] ╚██████╔╝██║ ██║ [/red]", + "[red] ╚═════╝ ╚═╝ ╚═╝ [/red]" ] } ], "TITLE": [ { "ascii": [ - " ____ _ _ ", - " / ___|| ||_ | ", - " | | _ | | | | ", - " | |_| || || | ", - " \\____||_||_| ", - " " + " _____ _ _ ", + " / ____(_) | ", + " | | __ _| |_ ", + " | | |_ | | __|", + " | |__| | | |_ ", + " \\_____|_|\\__|" ] } ], diff --git a/data/go.json b/data/go.json index 2a269c4..d062595 100644 --- a/data/go.json +++ b/data/go.json @@ -2,21 +2,23 @@ "LOGO": [ { "ascii": [ - "[blue] ___[/blue]", - "[blue] __| __|__[/blue]", - "[blue] / _` |/ _ \\[/blue]", - "[blue] \\__,_|\\___/[/blue]" + "[cyan] ██████╗ ██████╗ [/cyan]", + "[cyan] ██╔════╝ ██╔═══██╗[/cyan]", + "[cyan] ██║ ███╗██║ ██║[/cyan]", + "[cyan] ██║ ██║██║ ██║[/cyan]", + "[cyan] ╚██████╔╝╚██████╔╝[/cyan]", + "[cyan] ╚═════╝ ╚═════╝ [/cyan]" ] } ], "TITLE": [ { "ascii": [ - "[blue] ____ _ _ _ _[/blue]", - "[blue] / __ \\ / \\ | | / \\ | |[/blue]", - "[blue] / / / / / _ \\ | | / _ \\ | |[/blue]", - "[blue]/ /_/ / / ___ \\| | / ___ \\ |_|[/blue]", - "[blue]\\____/ /_/ \\_\\_|/_/ \\_(_)[/blue]" + " ____ ", + " / ___| ___ ", + " | | _ / _ \\ ", + " | |_| | (_) |", + " \\____|\\___/ " ] } ], diff --git a/data/grep.json b/data/grep.json index 3b67e86..fe6c22f 100644 --- a/data/grep.json +++ b/data/grep.json @@ -2,21 +2,24 @@ "LOGO": [ { "ascii": [ - "[blue] _____ _ _ _ [/blue]", - "[blue] |_ _|_ _ __| (_)__ ___| | | |[/blue]", - "[blue] | | | | | |/ _` | | \\/ -_) |__| |[/blue]", - "[blue] |_| |_|_| \\__,_|_|__/\\___|\\____/ [/blue]" + "[green] ██████╗ ██████╗ ███████╗██████╗ [/green]", + "[green] ██╔════╝ ██╔══██╗██╔════╝██╔══██╗[/green]", + "[green] ██║ ███╗██████╔╝█████╗ ██████╔╝[/green]", + "[green] ██║ ██║██╔══██╗██╔══╝ ██╔═══╝ [/green]", + "[green] ╚██████╔╝██║ ██║███████╗██║ [/green]", + "[green] ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ [/green]" ] } ], "TITLE": [ { "ascii": [ - " _____ _ _ _____ _____ _____ _ _ ", - " |_ _| | | | __ \\| __ \\| _ | | | |", - " | | | | | | | | | | | | | | | | | |", - " | | | |_| | | | | | | | |_| | | |_|", - " |_| \\___/|_|__/|_|__/ \\___/|____/|___| " + " ____ ", + " / ___|_ __ ___ _ __ ", + " | | _| '__/ _ \\ '_ \\ ", + " | |_| | | | __/ |_) | ", + " \\____|_| \\___| .__/ ", + " |_| " ] } ], diff --git a/data/make.json b/data/make.json index f7f0765..a373fd1 100644 --- a/data/make.json +++ b/data/make.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[red] __ ___ __ ___ [/red]", - "[red] | \\/ |/ / / -_)[/red]", - "[red] |/\\ /| \\ \\ \\__\\[/red]", - "[red] |/ \\/|_/ \\_\\/_____|[/red]" + "[red] ███╗ ███╗ █████╗ ██╗ ██╗███████╗[/red]", + "[red] ████╗ ████║██╔══██╗██║ ██╔╝██╔════╝[/red]", + "[red] ██╔████╔██║███████║█████╔╝ █████╗ [/red]", + "[red] ██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ [/red]", + "[red] ██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗[/red]", + "[red] ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝[/red]" ] } ], "TITLE": [ { "ascii": [ - "[red] __ ___ __ ___ ___[/red]", - "[red] | \\/ | |/ / / -_) / -_)[/red]", - "[red] |/\\ /| < \\__ \\\\__ \\[/red]", - "[red] |/ \\/|_| \\_\\ /___/ /___/[/red]" + " __ __ _ ", + " | \\/ | __ _| | _____ ", + " | |\\/| |/ _` | |/ / _ \\", + " | | | | (_| | < __/", + " |_| |_|\\__,_|_|\\_\\___|" ] } ], diff --git a/data/nvm.json b/data/nvm.json index 579c8f0..d60cba0 100644 --- a/data/nvm.json +++ b/data/nvm.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[green] ____ ____ ____ __ __[/green]", - "[green] / __ \\ / __ \\ | _ \\ / / / /[/green]", - "[green] / / / // /_/ / | | | |\\/ \\/ [/green]", - "[green] / /_/ // __/ | |_| | / [/green]", - "[green] \\____/ /_/ |____/ / [/green]" + "[green] ███╗ ██╗██╗ ██╗███╗ ███╗[/green]", + "[green] ████╗ ██║██║ ██║████╗ ████║[/green]", + "[green] ██╔██╗ ██║██║ ██║██╔████╔██║[/green]", + "[green] ██║╚██╗██║╚██╗ ██╔╝██║╚██╔╝██║[/green]", + "[green] ██║ ╚████║ ╚████╔╝ ██║ ╚═╝ ██║[/green]", + "[green] ╚═╝ ╚═══╝ ╚═══╝ ╚═╝ ╚═╝[/green]" ] } ], "TITLE": [ { "ascii": [ - "[green] ____ ___ ____ _ _ __ __[/green]", - "[green] / __ \\ / _ \\| _ \\| | | |/ _` |[/green]", - "[green] / / / // / / | | | | | | | (_| |[/green]", - "[green] / /_/ /| \\_/ | |_| | |_| | |_,_|[/green]", - "[green] \\____/ \\___/|____/ \\__/ \\__,_|[/green]" + " _ ___ ____ __ ", + " | \\ | \\ \\ / / \\/ |", + " | \\| |\\ \\ / /| |\\/| |", + " | |\\ | \\ V / | | | |", + " |_| \\_| \\_/ |_| |_|" ] } ], diff --git a/data/pip.json b/data/pip.json index 92811b9..ee1ffe5 100644 --- a/data/pip.json +++ b/data/pip.json @@ -2,22 +2,24 @@ "LOGO": [ { "ascii": [ - "[yellow] ___[/yellow]", - "[yellow] / _ \\[/yellow]", - "[yellow] / /__/[/yellow]", - "[yellow] / __ \\ [/yellow]", - "[yellow] /_/ \\_\\[/yellow]" + "[yellow] ██████╗ ██╗██████╗ [/yellow]", + "[yellow] ██╔══██╗██║██╔══██╗[/yellow]", + "[yellow] ██████╔╝██║██████╔╝[/yellow]", + "[yellow] ██╔═══╝ ██║██╔═══╝ [/yellow]", + "[yellow] ██║ ██║██║ [/yellow]", + "[yellow] ╚═╝ ╚═╝╚═╝ [/yellow]" ] } ], "TITLE": [ { "ascii": [ - " ____ _ ___ ", - " / __ \\| |/ _ \\ ", - " / / / /| | |_| | ", - "/_/ /_/ |_|\\___/ ", - " " + " ____ _ ", + " | _ \\(_)_ __ ", + " | |_) | | '_ \\ ", + " | __/| | |_) |", + " |_| |_| .__/ ", + " |_| " ] } ], diff --git a/data/poetry.json b/data/poetry.json index 68dccad..6f8fe27 100644 --- a/data/poetry.json +++ b/data/poetry.json @@ -2,24 +2,24 @@ "LOGO": [ { "ascii": [ - "[cyan] ___ _ [/cyan]", - "[cyan] / _ \\ ___ ___ | |_ _ __ [/cyan]", - "[cyan] / /_)/ _ \\ / -_| __|| '_ \\ [/cyan]", - "[cyan] / ___/ (_) |\\___|\\__|| .__/ [/cyan]", - "[cyan] /_/ \\___/| |____||_| [/cyan]" + "[cyan] ██████╗ ██████╗ ███████╗████████╗██████╗ ██╗ ██╗[/cyan]", + "[cyan] ██╔══██╗██╔═══██╗██╔════╝╚══██╔══╝██╔══██╗╚██╗ ██╔╝[/cyan]", + "[cyan] ██████╔╝██║ ██║█████╗ ██║ ██████╔╝ ╚████╔╝ [/cyan]", + "[cyan] ██╔═══╝ ██║ ██║██╔══╝ ██║ ██╔══██╗ ╚██╔╝ [/cyan]", + "[cyan] ██║ ╚██████╔╝███████╗ ██║ ██║ ██║ ██║ [/cyan]", + "[cyan] ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ [/cyan]" ] } ], "TITLE": [ { "ascii": [ - " ____ ___ ___ ______ ______ _ __ ", - " | _ \\/ _ \\ / _ \\| ____|_ _| | | ___| ", - " | |_| | | | | (_) | |_ | | | | |/ /| ", - " | __/| | | |\\___/| _| | | | | < | ", - " | | \\ \\_/ | | | _| |_| | |\\ \\ ", - " |_| \\___/ |_| |_____|_| |_|\\_\\ ", - " " + " ____ _ ", + " | _ \\ ___ ___| |_ _ __ _ _ ", + " | |_) / _ \\ / _ \\ __| '__| | | |", + " | __/ (_) | __/ |_| | | |_| |", + " |_| \\___/ \\___|\\__|_| \\__, |", + " |___/ " ] } ], diff --git a/data/rsync.json b/data/rsync.json index 0034774..0dee152 100644 --- a/data/rsync.json +++ b/data/rsync.json @@ -2,20 +2,24 @@ "LOGO": [ { "ascii": [ - "[cyan] ___ _ _ ___[/cyan]", - "[cyan] / __|| | | |/ -_)[/cyan]", - "[cyan] | (__ | |_| |\\___\\[/cyan]", - "[cyan] \\__| |___/|_|___/[/cyan]" + "[cyan] ██████╗ ███████╗██╗ ██╗███╗ ██╗ ██████╗[/cyan]", + "[cyan] ██╔══██╗██╔════╝╚██╗ ██╔╝████╗ ██║██╔════╝[/cyan]", + "[cyan] ██████╔╝███████╗ ╚████╔╝ ██╔██╗ ██║██║ [/cyan]", + "[cyan] ██╔══██╗╚════██║ ╚██╔╝ ██║╚██╗██║██║ [/cyan]", + "[cyan] ██║ ██║███████║ ██║ ██║ ╚████║╚██████╗[/cyan]", + "[cyan] ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝[/cyan]" ] } ], "TITLE": [ { "ascii": [ - "[cyan] ____ _ _ _ _[/cyan]", - "[cyan] / __ \\ | | | | | | | |[/cyan]", - "[cyan] / / / / | |_| | | |_| |[/cyan]", - "[cyan]/_/ /_/ \\___/ \\___,_|[/cyan]" + " ____ ", + " | _ \\ ___ _ _ _ __ ___ ", + " | |_) / __| | | | '_ \\ / __|", + " | _ <\\__ \\ |_| | | | | (__ ", + " |_| \\_\\___/\\__, |_| |_|\\___|", + " |___/ " ] } ], diff --git a/data/sdkman.json b/data/sdkman.json index 2a401c4..8a9f9d6 100644 --- a/data/sdkman.json +++ b/data/sdkman.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[blue] ___ ___ ___ ____ __ __ ___ _ _ [/blue]", - "[blue] / __|| _\\ / -_)|| _|| | \\/ \\ / -_)| | | | [/blue]", - "[blue] | (_ || |_ \\\\__ \\\\| |_ | | / _ \\ |__ \\\\ |/ / [/blue]", - "[blue] \\___||___/|___/ |___||_| / ___ \\\\ |_| | < [/blue]", - "[blue] / / \\\\ \\\\ [/blue]", - "[blue] /_/ \\\\_\\\\ [/blue]" + "[blue] ███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███╗ ██╗[/blue]", + "[blue] ██╔════╝██╔══██╗██║ ██╔╝████╗ ████║██╔══██╗████╗ ██║[/blue]", + "[blue] ███████╗██║ ██║█████╔╝ ██╔████╔██║███████║██╔██╗ ██║[/blue]", + "[blue] ╚════██║██║ ██║██╔═██╗ ██║╚██╔╝██║██╔══██║██║╚██╗██║[/blue]", + "[blue] ███████║██████╔╝██║ ██╗██║ ╚═╝ ██║██║ ██║██║ ╚████║[/blue]", + "[blue] ╚══════╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝[/blue]" ] } ], "TITLE": [ { "ascii": [ - "[blue] ____ ____ _ _ _ _ ___ __ ___ _ _[/blue]", - "[blue] / ___|| _ \\| |/ /| \\/ |/ _ \\ | \\| _\\| | | |[/blue]", - "[blue] \\___ \\| | | | < | () < | __/| | | |_ | |_| |[/blue]", - "[blue] |___/|_| |_|_|\\_\\|_||_/\\___|\\__|_|___\\\\___| \\___/[/blue]" + " ____ ____ _ ____ __ _ _ _ ", + " / ___|| _ \\| |/ / \\/ | / \\ | \\ | |", + " \\___ \\| | | | ' /| |\\/| | / _ \\ | \\| |", + " ___) | |_| | . \\| | | |/ ___ \\| |\\ |", + " |____/|____/|_|\\_\\_| |_/_/ \\_\\_| \\_|" ] } ], diff --git a/data/ssh.json b/data/ssh.json index bebd19a..2133176 100644 --- a/data/ssh.json +++ b/data/ssh.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[green] ___ ___ __ __[/green]", - "[green] / __\\( _)( ( )[/green]", - "[green] ( (__ ) _) )()( [/green]", - "[green] \\___|(___)(__)(__)__ [/green]" + "[green] ███████╗███████╗██╗ ██╗[/green]", + "[green] ██╔════╝██╔════╝██║ ██║[/green]", + "[green] ███████╗███████╗███████║[/green]", + "[green] ╚════██║╚════██║██╔══██║[/green]", + "[green] ███████║███████║██║ ██║[/green]", + "[green] ╚══════╝╚══════╝╚═╝ ╚═╝[/green]" ] } ], "TITLE": [ { "ascii": [ - "[green] ___ ___ __ __[/green]", - "[green] / __\\( _)( ( )[/green]", - "[green] ( (__ ) _) )()( [/green]", - "[green] \\___|(___)(__)(__)__[/green]" + " ____ ____ _ _ ", + " / ___/ ___|| | | |", + " \\___ \\___ \\| |_| |", + " ___) |__) | _ |", + " |____/____/|_| |_|" ] } ], diff --git a/data/sudo.json b/data/sudo.json index 7ff18fb..93f4d16 100644 --- a/data/sudo.json +++ b/data/sudo.json @@ -2,20 +2,23 @@ "LOGO": [ { "ascii": [ - "[green] ___ _ _ ___ ___ _ _[/green]", - "[green] / __|| | | |/ __|| _\\| | | |[/green]", - "[green] \\__ \\| |_| |\\__ \\| |_ | |_| |[/green]", - "[green] |___/\\__,_||___/|___/\\__,_/ [/green]" + "[green] ███████╗██╗ ██╗██████╗ ██████╗ [/green]", + "[green] ██╔════╝██║ ██║██╔══██╗██╔═══██╗[/green]", + "[green] ███████╗██║ ██║██║ ██║██║ ██║[/green]", + "[green] ╚════██║██║ ██║██║ ██║██║ ██║[/green]", + "[green] ███████║╚██████╔╝██████╔╝╚██████╔╝[/green]", + "[green] ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ [/green]" ] } ], "TITLE": [ { "ascii": [ - "[green] ____ _ _ ____ ___ ___[/green]", - "[green] / ___|| | | || _ \\/ __|| _|[/green]", - "[green] | | | |_| ||__) |\\__ \\| |_[/green]", - "[green] \\__| \\___/ |____/|___/|____|[/green]" + " ____ _ ", + " / ___| _ _ __| | ___ ", + " \\___ \\| | | |/ _` |/ _ \\ ", + " ___) | |_| | (_| | (_) |", + " |____/ \\__,_|\\__,_|\\___/ " ] } ], diff --git a/data/systemctl.json b/data/systemctl.json index ca314d3..ca53130 100644 --- a/data/systemctl.json +++ b/data/systemctl.json @@ -2,22 +2,24 @@ "LOGO": [ { "ascii": [ - "[magenta] _____[/magenta]", - "[magenta] / ___/ _ _ ___ _[/magenta]", - "[magenta] \\___ \\| | | |/ __|| |[/magenta]", - "[magenta] ___) | |_| |\\__ \\| |[/magenta]", - "[magenta] |____/ \\__,_||___/|_|[/magenta]" + "[magenta] ███████╗██╗ ██╗███████╗████████╗███████╗███╗ ███╗[/magenta]", + "[magenta] ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║[/magenta]", + "[magenta] ███████╗ ╚████╔╝ ███████╗ ██║ █████╗ ██╔████╔██║[/magenta]", + "[magenta] ╚════██║ ╚██╔╝ ╚════██║ ██║ ██╔══╝ ██║╚██╔╝██║[/magenta]", + "[magenta] ███████║ ██║ ███████║ ██║ ███████╗██║ ╚═╝ ██║[/magenta]", + "[magenta] ╚══════╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝[/magenta]" ] } ], "TITLE": [ { "ascii": [ - "[magenta] ___ _ _ ___ ___ _____ ___ ____ _[/magenta]", - "[magenta] / __)| | | || _||_ |/ __ |/ -_|| _ \\| |[/magenta]", - "[magenta] | (__ | |_| || |_| | | |_) / | | | | )| |__[/magenta]", - "[magenta] \\___| \\___/ |___/|_| | __/| | | |_) | |____)[/magenta]", - "[magenta] |_| |_| |____/ |______|[/magenta]" + " ____ _ _ _ ", + " / ___| _ _ ___| |_ ___ _ __ ___ __| | | |", + " \\___ \\| | | / __| __/ _ \\ '_ ` _ \\ / _` | | |", + " ___) | |_| \\__ \\ || __/ | | | | | (_| | |_|", + " |____/ \\__, |___/\\__\\___|_| |_| |_|\\__,_| (_)", + " |___/ " ] } ], diff --git a/data/tar.json b/data/tar.json index 2fb6de4..635bee3 100644 --- a/data/tar.json +++ b/data/tar.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[magenta] ______ _[/magenta]", - "[magenta] | ____| ___ | |[/magenta]", - "[magenta] | |__ / _ \\ | |[/magenta]", - "[magenta] | __| | __/ |_|[/magenta]", - "[magenta] | |___ \\___ |_| [/magenta]", - "[magenta] |_____| ___/ [/magenta]" + "[magenta] ████████╗ █████╗ ██████╗ [/magenta]", + "[magenta] ╚══██╔══╝██╔══██╗██╔══██╗[/magenta]", + "[magenta] ██║ ███████║██████╔╝[/magenta]", + "[magenta] ██║ ██╔══██║██╔══██╗[/magenta]", + "[magenta] ██║ ██║ ██║██║ ██║[/magenta]", + "[magenta] ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝[/magenta]" ] } ], "TITLE": [ { "ascii": [ - " ____ ___ _ __ _ _ ____ _ ___ ", - " | _ \\/ -_)| |/ / | || || _ \\| |/ -_) ", - " | .__/\\___|__,_/ |__||_||_) /_/_|\\___| ", - " |_| |___/ " + " _____ ", + " |_ _|_ _ _ __ ", + " | |/ _` | '__|", + " | | (_| | | ", + " |_|\\__,_|_| " ] } ], diff --git a/data/useradd.json b/data/useradd.json index 4457037..8abf55a 100644 --- a/data/useradd.json +++ b/data/useradd.json @@ -2,20 +2,22 @@ "LOGO": [ { "ascii": [ - "[yellow] _____ _ _ [/yellow]", - "[yellow] | _ | | | | | [/yellow]", - "[yellow] | |_| | | |_| | [/yellow]", - "[yellow] |_____| |_____| [/yellow]" + "[yellow] ██╗ ██╗███████╗███████╗██████╗ [/yellow]", + "[yellow] ██║ ██║██╔════╝██╔════╝██╔══██╗[/yellow]", + "[yellow] ██║ ██║███████╗█████╗ ██████╔╝[/yellow]", + "[yellow] ██║ ██║╚════██║██╔══╝ ██╔══██╗[/yellow]", + "[yellow] ╚██████╔╝███████║███████╗██║ ██║[/yellow]", + "[yellow] ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝[/yellow]" ] } ], "TITLE": [ { "ascii": [ - "[yellow] ____ ___ ____ ___ _ _[/yellow]", - "[yellow] / __ \\ / -_|| _/ / -_)| | | |[/yellow]", - "[yellow] / / / /| |_ || |_ | |__ | |_| |[/yellow]", - "[yellow]/_/ /_/ |___||____\\ \\___| \\__/[/yellow]" + " _ _ ___ ___ _ __ __ _ __| | __| |", + " | | | / __|/ _ \\ '__/ _` |/ _` |/ _` |", + " | |_| \\__ \\ __/ | | (_| | (_| | (_| |", + " \\__,_|___/\\___|_| \\__,_|\\__,_|\\__,_|" ] } ], diff --git a/data/uv.json b/data/uv.json index b7a0ca2..a321ee5 100644 --- a/data/uv.json +++ b/data/uv.json @@ -2,22 +2,23 @@ "LOGO": [ { "ascii": [ - "[magenta] _ _ __[/magenta]", - "[magenta] | | | | / /[/magenta]", - "[magenta] | | | |/ / [/magenta]", - "[magenta] | | | < [/magenta]", - "[magenta] |_| |_|\\_\\ [/magenta]" + "[magenta] ██╗ ██╗██╗ ██╗[/magenta]", + "[magenta] ██║ ██║██║ ██║[/magenta]", + "[magenta] ██║ ██║██║ ██║[/magenta]", + "[magenta] ██║ ██║╚██╗ ██╔╝[/magenta]", + "[magenta] ╚██████╔╝ ╚████╔╝ [/magenta]", + "[magenta] ╚═════╝ ╚═══╝ [/magenta]" ] } ], "TITLE": [ { "ascii": [ - " _ _ __ ___ __ ", - " | | | |/ / / __| / \\ ", - " | |_| / \\ | (__ | | ", - " \\___/_/\\_\\ \\___||_/\\_\\ ", - " " + " _ ___ __", + " | | | \\ \\ / /", + " | | | |\\ V / ", + " | |_| | | | ", + " \\___/ |_| " ] } ],