Skip to content

Commit 64984ba

Browse files
author
samarcher
committed
feat: implement automated dependency installation and non-interactive mode in installer
1 parent 53bdb58 commit 64984ba

2 files changed

Lines changed: 290 additions & 107 deletions

File tree

arjax/interfaces/cli.py

Lines changed: 95 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -717,75 +717,104 @@ def batch_install_packages(package_names: List[str]) -> None:
717717
def show_custom_help() -> None:
718718
"""Display comprehensive custom help text."""
719719
help_text = """
720-
[bold cyan]🎯 Arjax - Universal Package Manager for All Linux Distros[/bold cyan]
721-
722-
[bold yellow]📦 What does it do?[/bold yellow]
723-
Searches and installs packages across multiple sources:
724-
✓ Official repos (pacman, apt, dnf, zypper)
725-
✓ AUR (Arch User Repository)
726-
✓ Flatpak & Snap (works on any distro)
727-
728-
[bold yellow]🔍 SEARCH FOR PACKAGES[/bold yellow]
729-
[cyan]arjax search <package-name>[/cyan]
730-
[cyan]arjax <package-name>[/cyan] [dim](search is default)[/dim]
731-
732-
Examples:
733-
[green]🔸 arjax firefox[/green]
734-
[green]🔸 arjax visual studio code[/green]
735-
[green]🔸 arjax search telegram[/green]
736-
737-
Options:
738-
[cyan]--aur[/cyan] Prefer AUR packages over official repos
739-
[cyan]--no-cache[/cyan] Skip cache, search fresh results
740-
[cyan]--limit, -l[/cyan] Maximum results to show (default: 5)
741-
742-
[bold yellow]📦 INSTALL SOFTWARE[/bold yellow]
720+
[bold cyan]🎯 Arjax v2.0.0[/bold cyan]
721+
722+
Universal package discovery and installation for Linux.
723+
Search once. Install from the best available source.
724+
725+
[bold yellow]🚀 Quick Start[/bold yellow]
726+
[cyan]arjax search firefox[/cyan]
727+
[cyan]arjax install firefox[/cyan]
728+
[cyan]arjax suggest coding[/cyan]
729+
730+
[bold yellow]💻 Commands[/bold yellow]
731+
[cyan]search[/cyan] Search for software
732+
[cyan]install[/cyan] Install software
733+
[cyan]suggest[/cyan] Discover apps by purpose
734+
[cyan]update[/cyan] Update tracked packages
735+
[cyan]list-installed[/cyan] Show installed packages
736+
[cyan]web[/cyan] Launch web interface
737+
[cyan]upgrade[/cyan] Upgrade Arjax
738+
[cyan]uninstall[/cyan] Remove Arjax
739+
740+
[bold yellow]⚙️ Advanced Commands[/bold yellow]
741+
[cyan]config[/cyan] Manage configuration
742+
[cyan]service[/cyan] Background service
743+
744+
[bold yellow]🔍 Search[/bold yellow]
745+
Search only. No system modifications are performed.
746+
747+
[cyan]arjax search <query>[/cyan]
748+
749+
Examples:
750+
[green]🔸 arjax search firefox[/green]
751+
[green]🔸 arjax search visual studio code[/green]
752+
753+
Options:
754+
[cyan]--aur[/cyan] Prefer AUR packages over official repos
755+
[cyan]--no-cache[/cyan] Skip cache, search fresh results
756+
[cyan]--limit, -l[/cyan] Maximum results to show (default: 5)
757+
758+
[bold yellow]📦 Install[/bold yellow]
759+
Installs packages using the configured provider.
760+
743761
[cyan]arjax install <package-name>[/cyan]
744762
[cyan]arjax install <package-name> --provider <name>[/cyan]
745763
746-
Providers:
747-
[green]repository[/green], [green]vendor[/green], [green]github[/green], [green]flatpak[/green], [green]snap[/green], [green]appimage[/green]
748-
749-
[bold yellow]💡 GET APP SUGGESTIONS BY PURPOSE[/bold yellow]
750-
[cyan]arjax suggest <purpose>[/cyan]
751-
752-
Examples:
753-
[green]🔸 arjax suggest video editing[/green]
754-
[green]🔸 arjax suggest coding[/green]
755-
[green]🔸 arjax suggest gaming[/green]
756-
757-
[cyan]--list[/cyan] Show all available purposes
758-
759-
[bold yellow]🌐 WEB INTERFACE[/bold yellow]
760-
[cyan]arjax web[/cyan] Launch web UI
761-
[cyan]arjax web --port 8080[/cyan] Use custom port
762-
763-
[bold yellow]📦 PACKAGE TRACKING & UPDATES[/bold yellow]
764-
[cyan]arjax list-installed[/cyan] List tracked packages
765-
[cyan]arjax update[/cyan] Install updates
766-
[cyan]arjax update --check-only[/cyan] Only check for updates
767-
768-
[bold yellow]⚙️ CONFIGURATION[/bold yellow]
769-
[cyan]arjax config --list[/cyan] Show all settings
770-
[cyan]arjax config <key> <value>[/cyan] Set a config value
771-
772-
[bold yellow]🔄 BACKGROUND SERVICE[/bold yellow]
773-
[cyan]arjax service start|stop|status[/cyan]
774-
775-
[bold yellow]🔄 UPGRADE ARJAX[/bold yellow]
776-
[cyan]arjax upgrade[/cyan] Get latest version from GitHub
777-
778-
[bold yellow]🧹 UNINSTALL ARJAX[/bold yellow]
779-
[cyan]arjax uninstall[/cyan] Remove launcher, desktop entry, and venv
780-
[cyan]arjax uninstall --purge[/cyan] Also remove saved config
781-
782-
[bold yellow]🌍 SUPPORTED DISTRIBUTIONS[/bold yellow]
783-
[green]Arch, Manjaro, EndeavourOS, Ubuntu, Debian, Fedora,
784-
openSUSE, + any distro with Flatpak/Snap support[/green]
785-
786-
[bold yellow]📚 MORE INFORMATION[/bold yellow]
787-
Run [cyan]arjax <command> --help[/cyan] for detailed help on any command
788-
Visit: [blue]https://github.com/AdmGenSameer/arjax[/blue]
764+
Examples:
765+
[green]🔸 arjax install vscode[/green]
766+
[green]🔸 arjax install docker[/green]
767+
768+
[bold yellow]🔌 Provider Order[/bold yellow]
769+
1. [green]repository[/green] Native package manager (pacman, apt, dnf, zypper)
770+
2. [green]vendor[/green] Vendor package repository
771+
3. [green]github[/green] Direct GitHub release binary download
772+
4. [green]flatpak[/green] Flatpak package
773+
5. [green]snap[/green] Snap package
774+
6. [green]appimage[/green] AppImage format
775+
776+
Arjax automatically chooses the first supported and available provider.
777+
778+
[bold yellow]💡 Suggest[/bold yellow]
779+
Discover applications matching a specific purpose.
780+
781+
[cyan]arjax suggest <purpose>[/cyan]
782+
783+
Examples:
784+
[green]🔸 arjax suggest photo editing[/green]
785+
[green]🔸 arjax suggest coding[/green]
786+
787+
Options:
788+
[cyan]--list[/cyan] Show all available purposes
789+
790+
[bold yellow]🌐 Web Interface[/bold yellow]
791+
[cyan]arjax web[/cyan] Launch local web UI
792+
[cyan]--port[/cyan] Use custom port (default: 8000)
793+
794+
[bold yellow]🔄 Updates[/bold yellow]
795+
[cyan]arjax update[/cyan] Install updates for all tracked packages
796+
[cyan]--check-only[/cyan] Only check for updates, do not install
797+
798+
[bold yellow]🧹 Uninstall[/bold yellow]
799+
[cyan]arjax uninstall[/cyan] Remove launcher, desktop entry, and venv
800+
[cyan]--purge[/cyan] Also remove saved configuration
801+
802+
[bold yellow]🚩 Global Options[/bold yellow]
803+
[cyan]--help, -h[/cyan] Show this help message and exit
804+
[cyan]--version[/cyan] Show version information
805+
[cyan]--verbose[/cyan] Show verbose debug logs
806+
[cyan]--no-color[/cyan] Disable colored output
807+
[cyan]--yes, -y[/cyan] Assume yes to interactive prompts
808+
809+
[bold yellow]🌍 Supported Distributions[/bold yellow]
810+
[green]Arch, Manjaro, EndeavourOS, Ubuntu, Debian, Fedora,
811+
openSUSE, + any distro with Flatpak/Snap support[/green]
812+
813+
[bold yellow]📚 Documentation[/bold yellow]
814+
https://github.com/AdmGenSameer/arjax
815+
816+
[bold yellow]🐛 Report Issues[/bold yellow]
817+
https://github.com/AdmGenSameer/arjax/issues
789818
"""
790819
console.print(help_text)
791820

0 commit comments

Comments
 (0)