Skip to content

options

appimage_updater.cli.options

Centralized CLI option and argument definitions.

This module consolidates all typer.Option and typer.Argument definitions to eliminate duplication and provide a single source of truth for CLI options.

CLIOptions

Registry of all CLI options and arguments used across commands.

ADD_AUTO_SUBDIR_OPTION = typer.Option(None, '--auto-subdir/--no-auto-subdir', help='Enable or disable automatic subdirectory creation (overrides global default)') class-attribute instance-attribute

ADD_BASENAME_OPTION = typer.Option(None, '--basename', help='Base name for file matching (defaults to app name if not specified)') class-attribute instance-attribute

ADD_CHECKSUM_ALGORITHM_OPTION = typer.Option('sha256', '--checksum-algorithm', help='Checksum algorithm: sha256, sha1, md5 (default: sha256)') class-attribute instance-attribute

ADD_CHECKSUM_OPTION = typer.Option(None, '--checksum/--no-checksum', help='Enable or disable checksum verification (default: enabled)') class-attribute instance-attribute

ADD_CHECKSUM_PATTERN_OPTION = typer.Option('{filename}-SHA256.txt', '--checksum-pattern', help='Checksum file pattern with {filename} placeholder (default: {filename}-SHA256.txt)') class-attribute instance-attribute

ADD_CHECKSUM_REQUIRED_OPTION = typer.Option(None, '--checksum-required/--checksum-optional', help='Make checksum verification required or optional (default: optional)') class-attribute instance-attribute

ADD_DIRECT_OPTION = typer.Option(None, '--direct/--no-direct', help='Treat URL as direct download link (bypasses repository detection)') class-attribute instance-attribute

ADD_DOWNLOAD_DIR_ARGUMENT = typer.Argument(default=None, help='Directory where AppImage files will be downloaded (e.g., ~/Applications/AppName). If not provided, uses global default with auto-subdir if enabled.') class-attribute instance-attribute

ADD_EXAMPLES_OPTION = typer.Option(False, '--examples', help='Show usage examples and exit') class-attribute instance-attribute

ADD_INTERACTIVE_OPTION = typer.Option(False, '--interactive', '-i', help='Use interactive mode with step-by-step prompts') class-attribute instance-attribute

ADD_NAME_ARGUMENT = typer.Argument(default=None, help='Name for the application (used for identification and pattern matching)') class-attribute instance-attribute

ADD_PATTERN_OPTION = typer.Option(None, '--pattern', help='Custom regex pattern to match AppImage files (overrides auto-detection)') class-attribute instance-attribute

ADD_PRERELEASE_OPTION = typer.Option(None, '--prerelease/--no-prerelease', help='Enable or disable prerelease versions (default: disabled)') class-attribute instance-attribute

ADD_RETAIN_OPTION = typer.Option(3, '--retain-count', help='Number of old files to retain when rotation is enabled (default: 3)', min=1, max=10) class-attribute instance-attribute

ADD_ROTATION_OPTION = typer.Option(None, '--rotation/--no-rotation', help='Enable or disable file rotation (default: disabled)') class-attribute instance-attribute

ADD_URL_ARGUMENT = typer.Argument(default=None, help='URL to the application repository or release page (e.g., GitHub repository URL)') class-attribute instance-attribute

ADD_VERSION_PATTERN_OPTION = typer.Option(None, '--version-pattern', help="Version pattern to filter releases (e.g., 'N.N_' for stable versions only, excludes 'N.NrcN')") class-attribute instance-attribute

CHECK_APP_NAME_ARGUMENT = typer.Argument(default=None, help="Names of applications to check (case-insensitive, supports glob patterns like 'Orca*'). If not provided, checks all applications. Multiple names can be specified.") class-attribute instance-attribute

CHECK_INFO_OPTION = typer.Option(False, '--info', help='Update or create .info files with current version scheme for selected applications') class-attribute instance-attribute

CONFIG_ACTION_ARGUMENT = typer.Argument(default='', help='Action: show, set, reset, show-effective, list') class-attribute instance-attribute

CONFIG_APP_NAME_OPTION = typer.Option('', '--app', help="Application name (for 'show-effective' action)") class-attribute instance-attribute

CONFIG_DIR_OPTION = typer.Option(None, '--config-dir', '-d', help='Configuration directory path') class-attribute instance-attribute

CONFIG_SETTING_ARGUMENT = typer.Argument(default='', help="Setting name (for 'set' action)") class-attribute instance-attribute

CONFIG_VALUE_ARGUMENT = typer.Argument(default='', help="Setting value (for 'set' action)") class-attribute instance-attribute

CREATE_DIR_OPTION = typer.Option(False, '--create-dir', help="Automatically create download directory if it doesn't exist (no prompt)") class-attribute instance-attribute

DRY_RUN_OPTION = typer.Option(False, '--dry-run', help='Check for updates without downloading') class-attribute instance-attribute

EDIT_APP_NAME_ARGUMENT_OPTIONAL = typer.Argument(default=None, help="Names of applications to edit (case-insensitive, supports glob patterns like 'Orca*'). Multiple names can be specified.") class-attribute instance-attribute

EDIT_AUTO_SUBDIR_OPTION = typer.Option(None, '--auto-subdir/--no-auto-subdir', help='Enable or disable automatic subdirectory creation') class-attribute instance-attribute

EDIT_BASENAME_OPTION = typer.Option(None, '--basename', help='Update the base name for file matching') class-attribute instance-attribute

EDIT_CHECKSUM_ALGORITHM_OPTION = typer.Option(None, '--checksum-algorithm', help='Update the checksum algorithm') class-attribute instance-attribute

EDIT_CHECKSUM_OPTION = typer.Option(None, '--checksum/--no-checksum', help='Enable or disable checksum verification') class-attribute instance-attribute

EDIT_CHECKSUM_PATTERN_OPTION = typer.Option(None, '--checksum-pattern', help='Update the checksum file pattern') class-attribute instance-attribute

EDIT_CHECKSUM_REQUIRED_OPTION = typer.Option(None, '--checksum-required/--checksum-optional', help='Make checksum verification required or optional') class-attribute instance-attribute

EDIT_DIRECT_OPTION = typer.Option(None, '--direct/--no-direct', help='Treat URL as direct download link (bypasses repository detection)') class-attribute instance-attribute

EDIT_DOWNLOAD_DIR_OPTION = typer.Option(None, '--download-dir', help='Update the download directory') class-attribute instance-attribute

EDIT_DRY_RUN_OPTION = typer.Option(False, '--dry-run', help='Preview configuration changes without saving') class-attribute instance-attribute

EDIT_ENABLE_OPTION = typer.Option(None, '--enable/--disable', help='Enable or disable the application') class-attribute instance-attribute

EDIT_FORCE_OPTION = typer.Option(False, '--force', help='Skip URL validation and normalization') class-attribute instance-attribute

EDIT_PATTERN_OPTION = typer.Option(None, '--pattern', help='Update the file pattern (regex)') class-attribute instance-attribute

EDIT_PRERELEASE_OPTION = typer.Option(None, '--prerelease/--no-prerelease', help='Enable or disable prereleases') class-attribute instance-attribute

EDIT_RETAIN_COUNT_OPTION = typer.Option(None, '--retain-count', help='Update the number of old files to retain', min=1, max=10) class-attribute instance-attribute

EDIT_ROTATION_OPTION = typer.Option(None, '--rotation/--no-rotation', help='Enable or disable file rotation') class-attribute instance-attribute

EDIT_URL_OPTION = typer.Option(None, '--url', help='Update the repository URL') class-attribute instance-attribute

EDIT_VERSION_PATTERN_OPTION = typer.Option(None, '--version-pattern', help='Update the version pattern to filter releases') class-attribute instance-attribute

FORMAT_OPTION = typer.Option(OutputFormat.RICH, '--format', '-f', help='Output format: rich, plain, json, html, or markdown', case_sensitive=False) class-attribute instance-attribute

HTTP_STACK_DEPTH_OPTION = typer.Option(4, '--http-stack-depth', help='Number of call stack frames to capture for each HTTP request (1-10)', min=1, max=10) class-attribute instance-attribute

HTTP_TRACK_HEADERS_OPTION = typer.Option(False, '--http-track-headers', help='Include request headers in HTTP tracking (may contain sensitive data)') class-attribute instance-attribute

INSTRUMENT_HTTP_OPTION = typer.Option(False, '--instrument-http', help='Enable HTTP request tracking to analyze duplicate requests and performance') class-attribute instance-attribute

NO_INTERACTIVE_OPTION = typer.Option(False, '--no-interactive', help='Disable interactive distribution selection (use best match automatically)') class-attribute instance-attribute

NO_OPTION = typer.Option(False, '--no', '-n', help='Automatically answer no to prompts (non-interactive mode)') class-attribute instance-attribute

REMOVE_APP_NAME_ARGUMENT_OPTIONAL = typer.Argument(default=None, help="Names of applications to remove from configuration (case-insensitive, supports glob patterns like 'Orca*'). Multiple names can be specified.") class-attribute instance-attribute

REMOVE_NO_OPTION = typer.Option(False, '--no', '-n', help='Automatically answer no to confirmation prompts') class-attribute instance-attribute

REMOVE_YES_OPTION = typer.Option(False, '--yes', '-y', help='Automatically answer yes to confirmation prompts') class-attribute instance-attribute

REPOSITORY_APP_NAME_ARGUMENT = typer.Argument(help="Names of applications to examine repository information for (case-insensitive, supports glob patterns like 'Orca*'). Multiple names can be specified.") class-attribute instance-attribute

REPOSITORY_ASSETS_OPTION = typer.Option(False, '--assets', '-a', help='Show detailed asset information for each release') class-attribute instance-attribute

REPOSITORY_DRY_RUN_OPTION = typer.Option(False, '--dry-run', help='Show repository URLs that would be examined without fetching data') class-attribute instance-attribute

REPOSITORY_LIMIT_OPTION = typer.Option(10, '--limit', '-l', help='Maximum number of releases to display (default: 10)', min=1, max=50) class-attribute instance-attribute

SHOW_APP_NAME_ARGUMENT_OPTIONAL = typer.Argument(default=None, help="Names of applications to display information for (case-insensitive, supports glob patterns like 'Orca*'). Multiple names can be specified.") class-attribute instance-attribute

TRACE_OPTION = typer.Option(False, '--trace', help='Enable real-time HTTP request tracing with timing information') class-attribute instance-attribute

VERBOSE_OPTION = typer.Option(False, '--verbose', '-v', help='Show resolved parameter values including defaults') class-attribute instance-attribute

YES_OPTION = typer.Option(False, '--yes', '-y', help='Automatically answer yes to prompts (non-interactive mode)') class-attribute instance-attribute

debug_option() staticmethod

Debug logging option.

Source code in src/appimage_updater/cli/options.py
@staticmethod
def debug_option() -> Any:
    """Debug logging option."""
    return typer.Option(
        False,
        "--debug",
        help="Enable debug logging",
    )

version_option(callback) staticmethod

Version display option.

Source code in src/appimage_updater/cli/options.py
@staticmethod
def version_option(callback: Any) -> Any:
    """Version display option."""
    return typer.Option(
        False,
        "--version",
        "-V",
        help="Show version and exit",
        callback=callback,
        is_eager=True,
    )