diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cb5746..da10190 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.0] - 2026-06-17 + +### Added + +- New `cheznav info` subcommand for quickly diagnosing your setup. It prints the cheznav and chezmoi versions, whether chezmoi is installed, the detected chezmoi config file, and whether a source directory is initialized. It runs non-interactively (never launches the TUI), which also gives packagers a real command to smoke-test the install against. + ## [0.3.0] - 2026-06-15 ### Added diff --git a/README.md b/README.md index 45cb4fc..9cb33e6 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ yay -S cheznav cheznav # normal cheznav --dry-run # pass -n to all chezmoi calls cheznav --chezmoi-config ~/.config/chezmoi/work.toml # use custom chezmoi config file +cheznav info # print cheznav/chezmoi versions and config status, then exit ```
diff --git a/pyproject.toml b/pyproject.toml index 69740b9..017d99f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cheznav" -version = "0.3.0" +version = "0.4.0" description = "TUI for chezmoi" requires-python = ">=3.14" dependencies = [ diff --git a/src/cheznav/info.py b/src/cheznav/info.py new file mode 100644 index 0000000..6e49c6a --- /dev/null +++ b/src/cheznav/info.py @@ -0,0 +1,54 @@ +"""Non-interactive `cheznav info` command. + +Prints the cheznav and chezmoi versions and chezmoi's config status without +launching the TUI, so it is safe to run in scripts, CI, and packaging smoke +tests (e.g. Homebrew). +""" + +import os +import shutil +import subprocess +from pathlib import Path + +from cheznav import __version__ + + +def _find_chezmoi_config() -> tuple[Path | None, Path]: + """Locate chezmoi's config file in its default config directory.""" + xdg = os.environ.get("XDG_CONFIG_HOME") + search_dir = (Path(xdg) if xdg else Path.home() / ".config") / "chezmoi" + for name in ("chezmoi.toml", "chezmoi.yaml", "chezmoi.yml", "chezmoi.json", "chezmoi.jsonc"): + candidate = search_dir / name + if candidate.is_file(): + return candidate, search_dir + return None, search_dir + + +def print_info(config_path: str | None = None) -> None: + """Print cheznav/chezmoi versions and chezmoi's config status, then return.""" + print(f"cheznav {__version__}") + + chezmoi_bin = shutil.which("chezmoi") + if chezmoi_bin is None: + print("chezmoi: not found on PATH (install from https://www.chezmoi.io)") + return + + version_proc = subprocess.run([chezmoi_bin, "--version"], capture_output=True, text=True, check=False) + version_line = next(iter(version_proc.stdout.splitlines()), "").strip() or "unknown version" + print(f"chezmoi: {version_line} ({chezmoi_bin})") + + if config_path: + config = Path(config_path) + config_file = config if config.is_file() else None + search_dir = config + else: + config_file, search_dir = _find_chezmoi_config() + print(f"config: {config_file}" if config_file else f"config: none found (looked in {search_dir})") + + prefix = [chezmoi_bin, "--config", config_path] if config_path else [chezmoi_bin] + source_proc = subprocess.run([*prefix, "source-path"], capture_output=True, text=True, check=False) + source = Path(source_proc.stdout.strip()) if source_proc.returncode == 0 and source_proc.stdout.strip() else None + if source and source.is_dir(): + print(f"source: {source} ({'git repo' if (source / '.git').exists() else 'directory'})") + else: + print("source: not initialized") diff --git a/src/cheznav/main.py b/src/cheznav/main.py index 3d3f76f..8561018 100644 --- a/src/cheznav/main.py +++ b/src/cheznav/main.py @@ -17,6 +17,7 @@ from cheznav import THEME, chezmoi from cheznav.chezmoi import ManagedEntry +from cheznav.info import print_info from cheznav.utils import is_binary, is_binary_content from cheznav.widgets import ( ActionMenu, @@ -818,8 +819,16 @@ def main() -> None: metavar="PATH", help="Use a custom chezmoi config file (equivalent to chezmoi --config PATH)", ) + subparsers = parser.add_subparsers(dest="command") + subparsers.add_parser("info", help="Print cheznav/chezmoi versions and config status, then exit") args = parser.parse_args() + config_path = str(Path(args.chezmoi_config).expanduser()) if args.chezmoi_config else None + + if args.command == "info": + print_info(config_path) + return + chezmoi.set_config_path(config_path) CheznavApp(dry_run=args.dry_run).run() diff --git a/tests/__snapshots__/test_snapshots/test_add_flags.svg b/tests/__snapshots__/test_snapshots/test_add_flags.svg index 162216c..a13e670 100644 --- a/tests/__snapshots__/test_snapshots/test_add_flags.svg +++ b/tests/__snapshots__/test_snapshots/test_add_flags.svg @@ -19,224 +19,224 @@ font-weight: 700; } - .terminal-2253462146-matrix { + .terminal-1965234819-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2253462146-title { + .terminal-1965234819-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2253462146-r1 { fill: #533952 } -.terminal-2253462146-r2 { fill: #f8f8f2 } -.terminal-2253462146-r3 { fill: #c5c8c6 } -.terminal-2253462146-r4 { fill: #51535b } -.terminal-2253462146-r5 { fill: #534256;text-decoration: underline; } -.terminal-2253462146-r6 { fill: #33384c } -.terminal-2253462146-r7 { fill: #453f5d } -.terminal-2253462146-r8 { fill: #3c3e48 } -.terminal-2253462146-r9 { fill: #2c2e39 } -.terminal-2253462146-r10 { fill: #33384c;font-weight: bold } -.terminal-2253462146-r11 { fill: #2f3344 } -.terminal-2253462146-r12 { fill: #51535b;font-weight: bold } -.terminal-2253462146-r13 { fill: #464752 } -.terminal-2253462146-r14 { fill: #242531;font-weight: bold } -.terminal-2253462146-r15 { fill: #302e40;font-weight: bold } -.terminal-2253462146-r16 { fill: #534640 } -.terminal-2253462146-r17 { fill: #305343 } -.terminal-2253462146-r18 { fill: #43454e;font-style: italic; } -.terminal-2253462146-r19 { fill: #ff79c6 } -.terminal-2253462146-r20 { fill: #f8f8f2;font-weight: bold } -.terminal-2253462146-r21 { fill: #313442 } -.terminal-2253462146-r22 { fill: #8bfba7 } -.terminal-2253462146-r23 { fill: #181320;font-weight: bold } -.terminal-2253462146-r24 { fill: #111421 } -.terminal-2253462146-r25 { fill: #aaabb0;font-weight: bold } -.terminal-2253462146-r26 { fill: #aaabb0 } -.terminal-2253462146-r27 { fill: #42444f } -.terminal-2253462146-r28 { fill: #524640 } -.terminal-2253462146-r29 { fill: #533952;font-weight: bold } -.terminal-2253462146-r30 { fill: #31333f } + .terminal-1965234819-r1 { fill: #533952 } +.terminal-1965234819-r2 { fill: #f8f8f2 } +.terminal-1965234819-r3 { fill: #c5c8c6 } +.terminal-1965234819-r4 { fill: #51535b } +.terminal-1965234819-r5 { fill: #534256;text-decoration: underline; } +.terminal-1965234819-r6 { fill: #33384c } +.terminal-1965234819-r7 { fill: #453f5d } +.terminal-1965234819-r8 { fill: #3c3e48 } +.terminal-1965234819-r9 { fill: #2c2e39 } +.terminal-1965234819-r10 { fill: #33384c;font-weight: bold } +.terminal-1965234819-r11 { fill: #2f3344 } +.terminal-1965234819-r12 { fill: #51535b;font-weight: bold } +.terminal-1965234819-r13 { fill: #464752 } +.terminal-1965234819-r14 { fill: #242531;font-weight: bold } +.terminal-1965234819-r15 { fill: #302e40;font-weight: bold } +.terminal-1965234819-r16 { fill: #534640 } +.terminal-1965234819-r17 { fill: #305343 } +.terminal-1965234819-r18 { fill: #43454e;font-style: italic; } +.terminal-1965234819-r19 { fill: #ff79c6 } +.terminal-1965234819-r20 { fill: #f8f8f2;font-weight: bold } +.terminal-1965234819-r21 { fill: #313442 } +.terminal-1965234819-r22 { fill: #8bfba7 } +.terminal-1965234819-r23 { fill: #181320;font-weight: bold } +.terminal-1965234819-r24 { fill: #111421 } +.terminal-1965234819-r25 { fill: #aaabb0;font-weight: bold } +.terminal-1965234819-r26 { fill: #aaabb0 } +.terminal-1965234819-r27 { fill: #42444f } +.terminal-1965234819-r28 { fill: #524640 } +.terminal-1965234819-r29 { fill: #533952;font-weight: bold } +.terminal-1965234819-r30 { fill: #31333f } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig                                                 -Downloads/.vimrc                                                     -.bashrc.zshrc                                                     -.gitconfig -.profile -.vimrc -.zshrc - - - -Add .local - -X Recursive -X Exact - -Space toggle    Enter confirm    Esc cancel - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig                                                 +Downloads/.vimrc                                                     +.bashrc.zshrc                                                     +.gitconfig +.profile +.vimrc +.zshrc + + + +Add .local + +X Recursive +X Exact + +Space toggle    Enter confirm    Esc cancel + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_command_palette.svg b/tests/__snapshots__/test_snapshots/test_command_palette.svg index 10419f2..25c1ff7 100644 --- a/tests/__snapshots__/test_snapshots/test_command_palette.svg +++ b/tests/__snapshots__/test_snapshots/test_command_palette.svg @@ -19,221 +19,221 @@ font-weight: 700; } - .terminal-3746612898-matrix { + .terminal-3733309091-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-3746612898-title { + .terminal-3733309091-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-3746612898-r1 { fill: #7e496f } -.terminal-3746612898-r2 { fill: #f8f8f2 } -.terminal-3746612898-r3 { fill: #c5c8c6 } -.terminal-3746612898-r4 { fill: #7b7c81 } -.terminal-3746612898-r5 { fill: #7e5b77;text-decoration: underline; } -.terminal-3746612898-r6 { fill: #3f4662 } -.terminal-3746612898-r7 { fill: #635484 } -.terminal-3746612898-r8 { fill: #51535b } -.terminal-3746612898-r9 { fill: #30323d } -.terminal-3746612898-r10 { fill: #21202d;font-weight: bold } -.terminal-3746612898-r11 { fill: #38324a;font-weight: bold } -.terminal-3746612898-r12 { fill: #7b7c81;font-weight: bold } -.terminal-3746612898-r13 { fill: #64646f } -.terminal-3746612898-r14 { fill: #3f4662;font-weight: bold } -.terminal-3746612898-r15 { fill: #373c52 } -.terminal-3746612898-r16 { fill: #7e624b } -.terminal-3746612898-r17 { fill: #387d51 } -.terminal-3746612898-r18 { fill: #5e6067;font-style: italic; } -.terminal-3746612898-r19 { fill: #ff79c6 } -.terminal-3746612898-r20 { fill: #ff79c6;font-weight: bold } -.terminal-3746612898-r21 { fill: #2b2e3b } -.terminal-3746612898-r22 { fill: #bd93f9 } -.terminal-3746612898-r23 { fill: #181320;font-weight: bold } -.terminal-3746612898-r24 { fill: #5c5e68 } -.terminal-3746612898-r25 { fill: #7d624b } -.terminal-3746612898-r26 { fill: #7e496f;font-weight: bold } -.terminal-3746612898-r27 { fill: #3b3d48 } + .terminal-3733309091-r1 { fill: #7e496f } +.terminal-3733309091-r2 { fill: #f8f8f2 } +.terminal-3733309091-r3 { fill: #c5c8c6 } +.terminal-3733309091-r4 { fill: #7b7c81 } +.terminal-3733309091-r5 { fill: #7e5b77;text-decoration: underline; } +.terminal-3733309091-r6 { fill: #3f4662 } +.terminal-3733309091-r7 { fill: #635484 } +.terminal-3733309091-r8 { fill: #51535b } +.terminal-3733309091-r9 { fill: #30323d } +.terminal-3733309091-r10 { fill: #21202d;font-weight: bold } +.terminal-3733309091-r11 { fill: #38324a;font-weight: bold } +.terminal-3733309091-r12 { fill: #7b7c81;font-weight: bold } +.terminal-3733309091-r13 { fill: #64646f } +.terminal-3733309091-r14 { fill: #3f4662;font-weight: bold } +.terminal-3733309091-r15 { fill: #373c52 } +.terminal-3733309091-r16 { fill: #7e624b } +.terminal-3733309091-r17 { fill: #387d51 } +.terminal-3733309091-r18 { fill: #5e6067;font-style: italic; } +.terminal-3733309091-r19 { fill: #ff79c6 } +.terminal-3733309091-r20 { fill: #ff79c6;font-weight: bold } +.terminal-3733309091-r21 { fill: #2b2e3b } +.terminal-3733309091-r22 { fill: #bd93f9 } +.terminal-3733309091-r23 { fill: #181320;font-weight: bold } +.terminal-3733309091-r24 { fill: #5c5e68 } +.terminal-3733309091-r25 { fill: #7d624b } +.terminal-3733309091-r26 { fill: #7e496f;font-weight: bold } +.terminal-3733309091-r27 { fill: #3b3d48 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig                                                 -Downloads/.vimrc                                                     -.bashrc.zshrc                                                     -.gitconfig -.profile -.vimrc -.zshrc - -Commands -▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - Update (pull + apply) - View template data - Dump config - Doctor - Help - Quit -▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig                                                 +Downloads/.vimrc                                                     +.bashrc.zshrc                                                     +.gitconfig +.profile +.vimrc +.zshrc + +Commands +▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + Update (pull + apply) + View template data + Dump config + Doctor + Help + Quit +▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_context_menu_home.svg b/tests/__snapshots__/test_snapshots/test_context_menu_home.svg index 36b0eca..7d79dac 100644 --- a/tests/__snapshots__/test_snapshots/test_context_menu_home.svg +++ b/tests/__snapshots__/test_snapshots/test_context_menu_home.svg @@ -19,221 +19,221 @@ font-weight: 700; } - .terminal-1230120143-matrix { + .terminal-926360784-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-1230120143-title { + .terminal-926360784-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-1230120143-r1 { fill: #7e496f } -.terminal-1230120143-r2 { fill: #f8f8f2 } -.terminal-1230120143-r3 { fill: #c5c8c6 } -.terminal-1230120143-r4 { fill: #7b7c81 } -.terminal-1230120143-r5 { fill: #7e5b77;text-decoration: underline; } -.terminal-1230120143-r6 { fill: #3f4662 } -.terminal-1230120143-r7 { fill: #635484 } -.terminal-1230120143-r8 { fill: #51535b } -.terminal-1230120143-r9 { fill: #30323d } -.terminal-1230120143-r10 { fill: #3f4662;font-weight: bold } -.terminal-1230120143-r11 { fill: #373c52 } -.terminal-1230120143-r12 { fill: #7b7c81;font-weight: bold } -.terminal-1230120143-r13 { fill: #64646f } -.terminal-1230120143-r14 { fill: #21202d;font-weight: bold } -.terminal-1230120143-r15 { fill: #38324a;font-weight: bold } -.terminal-1230120143-r16 { fill: #7e624b } -.terminal-1230120143-r17 { fill: #387d51 } -.terminal-1230120143-r18 { fill: #5e6067;font-style: italic; } -.terminal-1230120143-r19 { fill: #ff79c6 } -.terminal-1230120143-r20 { fill: #ff79c6;font-weight: bold } -.terminal-1230120143-r21 { fill: #2b2e3b } -.terminal-1230120143-r22 { fill: #bd93f9 } -.terminal-1230120143-r23 { fill: #181320;font-weight: bold } -.terminal-1230120143-r24 { fill: #5c5e68 } -.terminal-1230120143-r25 { fill: #7d624b } -.terminal-1230120143-r26 { fill: #7e496f;font-weight: bold } -.terminal-1230120143-r27 { fill: #3b3d48 } + .terminal-926360784-r1 { fill: #7e496f } +.terminal-926360784-r2 { fill: #f8f8f2 } +.terminal-926360784-r3 { fill: #c5c8c6 } +.terminal-926360784-r4 { fill: #7b7c81 } +.terminal-926360784-r5 { fill: #7e5b77;text-decoration: underline; } +.terminal-926360784-r6 { fill: #3f4662 } +.terminal-926360784-r7 { fill: #635484 } +.terminal-926360784-r8 { fill: #51535b } +.terminal-926360784-r9 { fill: #30323d } +.terminal-926360784-r10 { fill: #3f4662;font-weight: bold } +.terminal-926360784-r11 { fill: #373c52 } +.terminal-926360784-r12 { fill: #7b7c81;font-weight: bold } +.terminal-926360784-r13 { fill: #64646f } +.terminal-926360784-r14 { fill: #21202d;font-weight: bold } +.terminal-926360784-r15 { fill: #38324a;font-weight: bold } +.terminal-926360784-r16 { fill: #7e624b } +.terminal-926360784-r17 { fill: #387d51 } +.terminal-926360784-r18 { fill: #5e6067;font-style: italic; } +.terminal-926360784-r19 { fill: #ff79c6 } +.terminal-926360784-r20 { fill: #ff79c6;font-weight: bold } +.terminal-926360784-r21 { fill: #2b2e3b } +.terminal-926360784-r22 { fill: #bd93f9 } +.terminal-926360784-r23 { fill: #181320;font-weight: bold } +.terminal-926360784-r24 { fill: #5c5e68 } +.terminal-926360784-r25 { fill: #7d624b } +.terminal-926360784-r26 { fill: #7e496f;font-weight: bold } +.terminal-926360784-r27 { fill: #3b3d48 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig                                                 -Downloads/.vimrc                                                     -.bashrc.zshrc                                                     -.gitconfig -.profile -.vimrc -.zshrc - - - -.local/ -▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - Expand                         [space] - Add to chezmoi                 [a] -▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig                                                 +Downloads/.vimrc                                                     +.bashrc.zshrc                                                     +.gitconfig +.profile +.vimrc +.zshrc + + + +.local/ +▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + Expand                         [space] + Add to chezmoi                 [a] +▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_context_menu_managed.svg b/tests/__snapshots__/test_snapshots/test_context_menu_managed.svg index 2236eca..551a9f6 100644 --- a/tests/__snapshots__/test_snapshots/test_context_menu_managed.svg +++ b/tests/__snapshots__/test_snapshots/test_context_menu_managed.svg @@ -19,221 +19,221 @@ font-weight: 700; } - .terminal-824780108-matrix { + .terminal-520889677-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-824780108-title { + .terminal-520889677-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-824780108-r1 { fill: #7e496f } -.terminal-824780108-r2 { fill: #f8f8f2 } -.terminal-824780108-r3 { fill: #c5c8c6 } -.terminal-824780108-r4 { fill: #7b7c81 } -.terminal-824780108-r5 { fill: #7e5b77;text-decoration: underline; } -.terminal-824780108-r6 { fill: #3f4662 } -.terminal-824780108-r7 { fill: #635484 } -.terminal-824780108-r8 { fill: #51535b } -.terminal-824780108-r9 { fill: #30323d } -.terminal-824780108-r10 { fill: #7b7c81;font-weight: bold } -.terminal-824780108-r11 { fill: #64646f } -.terminal-824780108-r12 { fill: #21202d;font-weight: bold } -.terminal-824780108-r13 { fill: #38324a;font-weight: bold } -.terminal-824780108-r14 { fill: #3f4662;font-weight: bold } -.terminal-824780108-r15 { fill: #373c52 } -.terminal-824780108-r16 { fill: #7e624b } -.terminal-824780108-r17 { fill: #387d51 } -.terminal-824780108-r18 { fill: #5e6067;font-style: italic; } -.terminal-824780108-r19 { fill: #ff79c6 } -.terminal-824780108-r20 { fill: #ff79c6;font-weight: bold } -.terminal-824780108-r21 { fill: #2b2e3b } -.terminal-824780108-r22 { fill: #bd93f9 } -.terminal-824780108-r23 { fill: #181320;font-weight: bold } -.terminal-824780108-r24 { fill: #5c5e68 } -.terminal-824780108-r25 { fill: #7d624b } -.terminal-824780108-r26 { fill: #7e496f;font-weight: bold } -.terminal-824780108-r27 { fill: #3b3d48 } + .terminal-520889677-r1 { fill: #7e496f } +.terminal-520889677-r2 { fill: #f8f8f2 } +.terminal-520889677-r3 { fill: #c5c8c6 } +.terminal-520889677-r4 { fill: #7b7c81 } +.terminal-520889677-r5 { fill: #7e5b77;text-decoration: underline; } +.terminal-520889677-r6 { fill: #3f4662 } +.terminal-520889677-r7 { fill: #635484 } +.terminal-520889677-r8 { fill: #51535b } +.terminal-520889677-r9 { fill: #30323d } +.terminal-520889677-r10 { fill: #7b7c81;font-weight: bold } +.terminal-520889677-r11 { fill: #64646f } +.terminal-520889677-r12 { fill: #21202d;font-weight: bold } +.terminal-520889677-r13 { fill: #38324a;font-weight: bold } +.terminal-520889677-r14 { fill: #3f4662;font-weight: bold } +.terminal-520889677-r15 { fill: #373c52 } +.terminal-520889677-r16 { fill: #7e624b } +.terminal-520889677-r17 { fill: #387d51 } +.terminal-520889677-r18 { fill: #5e6067;font-style: italic; } +.terminal-520889677-r19 { fill: #ff79c6 } +.terminal-520889677-r20 { fill: #ff79c6;font-weight: bold } +.terminal-520889677-r21 { fill: #2b2e3b } +.terminal-520889677-r22 { fill: #bd93f9 } +.terminal-520889677-r23 { fill: #181320;font-weight: bold } +.terminal-520889677-r24 { fill: #5c5e68 } +.terminal-520889677-r25 { fill: #7d624b } +.terminal-520889677-r26 { fill: #7e496f;font-weight: bold } +.terminal-520889677-r27 { fill: #3b3d48 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig                                                 -Downloads/.vimrc                                                     -.bashrc.zshrc                                                     -.gitconfig -.profile -.vimrc -.zshrc - - - -.config/ -▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - Expand                         [space] - Ignore directory               [i] -▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig                                                 +Downloads/.vimrc                                                     +.bashrc.zshrc                                                     +.gitconfig +.profile +.vimrc +.zshrc + + + +.config/ +▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + Expand                         [space] + Ignore directory               [i] +▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_git_ahead_behind_header.svg b/tests/__snapshots__/test_snapshots/test_git_ahead_behind_header.svg index 723b373..d5bd249 100644 --- a/tests/__snapshots__/test_snapshots/test_git_ahead_behind_header.svg +++ b/tests/__snapshots__/test_snapshots/test_git_ahead_behind_header.svg @@ -19,216 +19,216 @@ font-weight: 700; } - .terminal-2216093193-matrix { + .terminal-1657005578-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2216093193-title { + .terminal-1657005578-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2216093193-r1 { fill: #ff79c6 } -.terminal-2216093193-r2 { fill: #c5c8c6 } -.terminal-2216093193-r3 { fill: #f8f8f2 } -.terminal-2216093193-r4 { fill: #fe5555 } -.terminal-2216093193-r5 { fill: #ffa6d9;text-decoration: underline; } -.terminal-2216093193-r6 { fill: #6272a4 } -.terminal-2216093193-r7 { fill: #bd93f9 } -.terminal-2216093193-r8 { fill: #909194 } -.terminal-2216093193-r9 { fill: #3c3e48 } -.terminal-2216093193-r10 { fill: #181320;font-weight: bold } -.terminal-2216093193-r11 { fill: #503e69;font-weight: bold } -.terminal-2216093193-r12 { fill: #f8f8f2;font-weight: bold } -.terminal-2216093193-r13 { fill: #c0bcc5 } -.terminal-2216093193-r14 { fill: #6272a4;font-weight: bold } -.terminal-2216093193-r15 { fill: #4e597e } -.terminal-2216093193-r16 { fill: #ffb86c } -.terminal-2216093193-r17 { fill: #50fa7b } -.terminal-2216093193-r18 { fill: #b1b1b2;font-style: italic; } -.terminal-2216093193-r19 { fill: #acadb3 } -.terminal-2216093193-r20 { fill: #feb86c } -.terminal-2216093193-r21 { fill: #ff79c6;font-weight: bold } -.terminal-2216093193-r22 { fill: #585b65 } + .terminal-1657005578-r1 { fill: #ff79c6 } +.terminal-1657005578-r2 { fill: #c5c8c6 } +.terminal-1657005578-r3 { fill: #f8f8f2 } +.terminal-1657005578-r4 { fill: #fe5555 } +.terminal-1657005578-r5 { fill: #ffa6d9;text-decoration: underline; } +.terminal-1657005578-r6 { fill: #6272a4 } +.terminal-1657005578-r7 { fill: #bd93f9 } +.terminal-1657005578-r8 { fill: #909194 } +.terminal-1657005578-r9 { fill: #3c3e48 } +.terminal-1657005578-r10 { fill: #181320;font-weight: bold } +.terminal-1657005578-r11 { fill: #503e69;font-weight: bold } +.terminal-1657005578-r12 { fill: #f8f8f2;font-weight: bold } +.terminal-1657005578-r13 { fill: #c0bcc5 } +.terminal-1657005578-r14 { fill: #6272a4;font-weight: bold } +.terminal-1657005578-r15 { fill: #4e597e } +.terminal-1657005578-r16 { fill: #ffb86c } +.terminal-1657005578-r17 { fill: #50fa7b } +.terminal-1657005578-r18 { fill: #b1b1b2;font-style: italic; } +.terminal-1657005578-r19 { fill: #acadb3 } +.terminal-1657005578-r20 { fill: #feb86c } +.terminal-1657005578-r21 { fill: #ff79c6;font-weight: bold } +.terminal-1657005578-r22 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ] [ 3 ahead1 behind ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig -Downloads/.vimrc -.bashrc.zshrc -.gitconfig -.profile -.vimrc -.zshrc - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ] [ 3 ahead1 behind ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig +Downloads/.vimrc +.bashrc.zshrc +.gitconfig +.profile +.vimrc +.zshrc + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_git_dirty_indicators.svg b/tests/__snapshots__/test_snapshots/test_git_dirty_indicators.svg index 9fd8e61..9b9dd43 100644 --- a/tests/__snapshots__/test_snapshots/test_git_dirty_indicators.svg +++ b/tests/__snapshots__/test_snapshots/test_git_dirty_indicators.svg @@ -19,215 +19,215 @@ font-weight: 700; } - .terminal-699889463-matrix { + .terminal-196572984-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-699889463-title { + .terminal-196572984-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-699889463-r1 { fill: #ff79c6 } -.terminal-699889463-r2 { fill: #c5c8c6 } -.terminal-699889463-r3 { fill: #f8f8f2 } -.terminal-699889463-r4 { fill: #feb86c } -.terminal-699889463-r5 { fill: #ffa6d9;text-decoration: underline; } -.terminal-699889463-r6 { fill: #6272a4 } -.terminal-699889463-r7 { fill: #bd93f9 } -.terminal-699889463-r8 { fill: #909194 } -.terminal-699889463-r9 { fill: #3c3e48 } -.terminal-699889463-r10 { fill: #f8f8f2;font-weight: bold } -.terminal-699889463-r11 { fill: #c0bcc5 } -.terminal-699889463-r12 { fill: #181320;font-weight: bold } -.terminal-699889463-r13 { fill: #503e69;font-weight: bold } -.terminal-699889463-r14 { fill: #6272a4;font-weight: bold } -.terminal-699889463-r15 { fill: #4e597e } -.terminal-699889463-r16 { fill: #ffb86c } -.terminal-699889463-r17 { fill: #50fa7b } -.terminal-699889463-r18 { fill: #b1b1b2;font-style: italic; } -.terminal-699889463-r19 { fill: #acadb3 } -.terminal-699889463-r20 { fill: #ff79c6;font-weight: bold } -.terminal-699889463-r21 { fill: #585b65 } + .terminal-196572984-r1 { fill: #ff79c6 } +.terminal-196572984-r2 { fill: #c5c8c6 } +.terminal-196572984-r3 { fill: #f8f8f2 } +.terminal-196572984-r4 { fill: #feb86c } +.terminal-196572984-r5 { fill: #ffa6d9;text-decoration: underline; } +.terminal-196572984-r6 { fill: #6272a4 } +.terminal-196572984-r7 { fill: #bd93f9 } +.terminal-196572984-r8 { fill: #909194 } +.terminal-196572984-r9 { fill: #3c3e48 } +.terminal-196572984-r10 { fill: #f8f8f2;font-weight: bold } +.terminal-196572984-r11 { fill: #c0bcc5 } +.terminal-196572984-r12 { fill: #181320;font-weight: bold } +.terminal-196572984-r13 { fill: #503e69;font-weight: bold } +.terminal-196572984-r14 { fill: #6272a4;font-weight: bold } +.terminal-196572984-r15 { fill: #4e597e } +.terminal-196572984-r16 { fill: #ffb86c } +.terminal-196572984-r17 { fill: #50fa7b } +.terminal-196572984-r18 { fill: #b1b1b2;font-style: italic; } +.terminal-196572984-r19 { fill: #acadb3 } +.terminal-196572984-r20 { fill: #ff79c6;font-weight: bold } +.terminal-196572984-r21 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ] [ 2 uncommitted ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc 🔄 -Documents/.gitconfig -Downloads/.vimrc -.bashrc 🔄.zshrc 🔄 -.gitconfig -.profile -.vimrc -.zshrc 🔄 - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ] [ 2 uncommitted ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc 🔄 +Documents/.gitconfig +Downloads/.vimrc +.bashrc 🔄.zshrc 🔄 +.gitconfig +.profile +.vimrc +.zshrc 🔄 + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_git_uncommitted_header.svg b/tests/__snapshots__/test_snapshots/test_git_uncommitted_header.svg index 88456b7..ba37179 100644 --- a/tests/__snapshots__/test_snapshots/test_git_uncommitted_header.svg +++ b/tests/__snapshots__/test_snapshots/test_git_uncommitted_header.svg @@ -19,215 +19,215 @@ font-weight: 700; } - .terminal-204109684-matrix { + .terminal-3994842997-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-204109684-title { + .terminal-3994842997-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-204109684-r1 { fill: #ff79c6 } -.terminal-204109684-r2 { fill: #c5c8c6 } -.terminal-204109684-r3 { fill: #f8f8f2 } -.terminal-204109684-r4 { fill: #feb86c } -.terminal-204109684-r5 { fill: #ffa6d9;text-decoration: underline; } -.terminal-204109684-r6 { fill: #6272a4 } -.terminal-204109684-r7 { fill: #bd93f9 } -.terminal-204109684-r8 { fill: #909194 } -.terminal-204109684-r9 { fill: #3c3e48 } -.terminal-204109684-r10 { fill: #181320;font-weight: bold } -.terminal-204109684-r11 { fill: #503e69;font-weight: bold } -.terminal-204109684-r12 { fill: #f8f8f2;font-weight: bold } -.terminal-204109684-r13 { fill: #c0bcc5 } -.terminal-204109684-r14 { fill: #6272a4;font-weight: bold } -.terminal-204109684-r15 { fill: #4e597e } -.terminal-204109684-r16 { fill: #ffb86c } -.terminal-204109684-r17 { fill: #50fa7b } -.terminal-204109684-r18 { fill: #b1b1b2;font-style: italic; } -.terminal-204109684-r19 { fill: #acadb3 } -.terminal-204109684-r20 { fill: #ff79c6;font-weight: bold } -.terminal-204109684-r21 { fill: #585b65 } + .terminal-3994842997-r1 { fill: #ff79c6 } +.terminal-3994842997-r2 { fill: #c5c8c6 } +.terminal-3994842997-r3 { fill: #f8f8f2 } +.terminal-3994842997-r4 { fill: #feb86c } +.terminal-3994842997-r5 { fill: #ffa6d9;text-decoration: underline; } +.terminal-3994842997-r6 { fill: #6272a4 } +.terminal-3994842997-r7 { fill: #bd93f9 } +.terminal-3994842997-r8 { fill: #909194 } +.terminal-3994842997-r9 { fill: #3c3e48 } +.terminal-3994842997-r10 { fill: #181320;font-weight: bold } +.terminal-3994842997-r11 { fill: #503e69;font-weight: bold } +.terminal-3994842997-r12 { fill: #f8f8f2;font-weight: bold } +.terminal-3994842997-r13 { fill: #c0bcc5 } +.terminal-3994842997-r14 { fill: #6272a4;font-weight: bold } +.terminal-3994842997-r15 { fill: #4e597e } +.terminal-3994842997-r16 { fill: #ffb86c } +.terminal-3994842997-r17 { fill: #50fa7b } +.terminal-3994842997-r18 { fill: #b1b1b2;font-style: italic; } +.terminal-3994842997-r19 { fill: #acadb3 } +.terminal-3994842997-r20 { fill: #ff79c6;font-weight: bold } +.terminal-3994842997-r21 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ] [ 2 uncommitted ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc 🔄 -Documents/.gitconfig -Downloads/.vimrc -.bashrc 🔄.zshrc 🔄 -.gitconfig -.profile -.vimrc -.zshrc 🔄 - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ] [ 2 uncommitted ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc 🔄 +Documents/.gitconfig +Downloads/.vimrc +.bashrc 🔄.zshrc 🔄 +.gitconfig +.profile +.vimrc +.zshrc 🔄 + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_help_screen.svg b/tests/__snapshots__/test_snapshots/test_help_screen.svg index 31368e3..5cfeddd 100644 --- a/tests/__snapshots__/test_snapshots/test_help_screen.svg +++ b/tests/__snapshots__/test_snapshots/test_help_screen.svg @@ -19,220 +19,220 @@ font-weight: 700; } - .terminal-1720791707-matrix { + .terminal-2016096924-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-1720791707-title { + .terminal-2016096924-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-1720791707-r1 { fill: #533952 } -.terminal-1720791707-r2 { fill: #f8f8f2 } -.terminal-1720791707-r3 { fill: #c5c8c6 } -.terminal-1720791707-r4 { fill: #51535b } -.terminal-1720791707-r5 { fill: #534256;text-decoration: underline; } -.terminal-1720791707-r6 { fill: #33384c } -.terminal-1720791707-r7 { fill: #453f5d } -.terminal-1720791707-r8 { fill: #3c3e48 } -.terminal-1720791707-r9 { fill: #2c2e39 } -.terminal-1720791707-r10 { fill: #242531;font-weight: bold } -.terminal-1720791707-r11 { fill: #302e40;font-weight: bold } -.terminal-1720791707-r12 { fill: #51535b;font-weight: bold } -.terminal-1720791707-r13 { fill: #464752 } -.terminal-1720791707-r14 { fill: #33384c;font-weight: bold } -.terminal-1720791707-r15 { fill: #2f3344 } -.terminal-1720791707-r16 { fill: #534640 } -.terminal-1720791707-r17 { fill: #ff79c6 } -.terminal-1720791707-r18 { fill: #f8f8f2;font-weight: bold } -.terminal-1720791707-r19 { fill: #305343 } -.terminal-1720791707-r20 { fill: #43454e;font-style: italic; } -.terminal-1720791707-r21 { fill: #aaabb0 } -.terminal-1720791707-r22 { fill: #aaabb0;font-weight: bold } -.terminal-1720791707-r23 { fill: #42444f } -.terminal-1720791707-r24 { fill: #524640 } -.terminal-1720791707-r25 { fill: #533952;font-weight: bold } -.terminal-1720791707-r26 { fill: #31333f } + .terminal-2016096924-r1 { fill: #533952 } +.terminal-2016096924-r2 { fill: #f8f8f2 } +.terminal-2016096924-r3 { fill: #c5c8c6 } +.terminal-2016096924-r4 { fill: #51535b } +.terminal-2016096924-r5 { fill: #534256;text-decoration: underline; } +.terminal-2016096924-r6 { fill: #33384c } +.terminal-2016096924-r7 { fill: #453f5d } +.terminal-2016096924-r8 { fill: #3c3e48 } +.terminal-2016096924-r9 { fill: #2c2e39 } +.terminal-2016096924-r10 { fill: #242531;font-weight: bold } +.terminal-2016096924-r11 { fill: #302e40;font-weight: bold } +.terminal-2016096924-r12 { fill: #51535b;font-weight: bold } +.terminal-2016096924-r13 { fill: #464752 } +.terminal-2016096924-r14 { fill: #33384c;font-weight: bold } +.terminal-2016096924-r15 { fill: #2f3344 } +.terminal-2016096924-r16 { fill: #534640 } +.terminal-2016096924-r17 { fill: #ff79c6 } +.terminal-2016096924-r18 { fill: #f8f8f2;font-weight: bold } +.terminal-2016096924-r19 { fill: #305343 } +.terminal-2016096924-r20 { fill: #43454e;font-style: italic; } +.terminal-2016096924-r21 { fill: #aaabb0 } +.terminal-2016096924-r22 { fill: #aaabb0;font-weight: bold } +.terminal-2016096924-r23 { fill: #42444f } +.terminal-2016096924-r24 { fill: #524640 } +.terminal-2016096924-r25 { fill: #533952;font-weight: bold } +.terminal-2016096924-r26 { fill: #31333f } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ -Downloads/ -.bashrccheznav — Keybindings -.gitconfig -.profileActions -.vimrcEnter      Open actions menu for selected item -.zshrc:          Open command palette (global actions) -v          Quick view file content - -Navigation -Tab / ← →  Switch pane -Space        Expand/collapse directory -↑ ↓ / j k  Navigate tree - -Diff -d          Show diff for selected file in your pager - -Global -?          This help screen -q          Quit - - -Press Escape or ? to close - -█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ +Downloads/ +.bashrccheznav — Keybindings +.gitconfig +.profileActions +.vimrcEnter      Open actions menu for selected item +.zshrc:          Open command palette (global actions) +v          Quick view file content + +Navigation +Tab / ← →  Switch pane +Space        Expand/collapse directory +↑ ↓ / j k  Navigate tree + +Diff +d          Show diff for selected file in your pager + +Global +?          This help screen +q          Quit + + +Press Escape or ? to close + +█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_main_view.svg b/tests/__snapshots__/test_snapshots/test_main_view.svg index ffa9e00..9a43fa7 100644 --- a/tests/__snapshots__/test_snapshots/test_main_view.svg +++ b/tests/__snapshots__/test_snapshots/test_main_view.svg @@ -19,215 +19,215 @@ font-weight: 700; } - .terminal-223335738-matrix { + .terminal-3958232379-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-223335738-title { + .terminal-3958232379-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-223335738-r1 { fill: #ff79c6 } -.terminal-223335738-r2 { fill: #c5c8c6 } -.terminal-223335738-r3 { fill: #f8f8f2 } -.terminal-223335738-r4 { fill: #ffa6d9;text-decoration: underline; } -.terminal-223335738-r5 { fill: #6272a4 } -.terminal-223335738-r6 { fill: #bd93f9 } -.terminal-223335738-r7 { fill: #909194 } -.terminal-223335738-r8 { fill: #3c3e48 } -.terminal-223335738-r9 { fill: #181320;font-weight: bold } -.terminal-223335738-r10 { fill: #503e69;font-weight: bold } -.terminal-223335738-r11 { fill: #f8f8f2;font-weight: bold } -.terminal-223335738-r12 { fill: #c0bcc5 } -.terminal-223335738-r13 { fill: #6272a4;font-weight: bold } -.terminal-223335738-r14 { fill: #4e597e } -.terminal-223335738-r15 { fill: #ffb86c } -.terminal-223335738-r16 { fill: #50fa7b } -.terminal-223335738-r17 { fill: #b1b1b2;font-style: italic; } -.terminal-223335738-r18 { fill: #acadb3 } -.terminal-223335738-r19 { fill: #feb86c } -.terminal-223335738-r20 { fill: #ff79c6;font-weight: bold } -.terminal-223335738-r21 { fill: #585b65 } + .terminal-3958232379-r1 { fill: #ff79c6 } +.terminal-3958232379-r2 { fill: #c5c8c6 } +.terminal-3958232379-r3 { fill: #f8f8f2 } +.terminal-3958232379-r4 { fill: #ffa6d9;text-decoration: underline; } +.terminal-3958232379-r5 { fill: #6272a4 } +.terminal-3958232379-r6 { fill: #bd93f9 } +.terminal-3958232379-r7 { fill: #909194 } +.terminal-3958232379-r8 { fill: #3c3e48 } +.terminal-3958232379-r9 { fill: #181320;font-weight: bold } +.terminal-3958232379-r10 { fill: #503e69;font-weight: bold } +.terminal-3958232379-r11 { fill: #f8f8f2;font-weight: bold } +.terminal-3958232379-r12 { fill: #c0bcc5 } +.terminal-3958232379-r13 { fill: #6272a4;font-weight: bold } +.terminal-3958232379-r14 { fill: #4e597e } +.terminal-3958232379-r15 { fill: #ffb86c } +.terminal-3958232379-r16 { fill: #50fa7b } +.terminal-3958232379-r17 { fill: #b1b1b2;font-style: italic; } +.terminal-3958232379-r18 { fill: #acadb3 } +.terminal-3958232379-r19 { fill: #feb86c } +.terminal-3958232379-r20 { fill: #ff79c6;font-weight: bold } +.terminal-3958232379-r21 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig -Downloads/.vimrc -.bashrc.zshrc -.gitconfig -.profile -.vimrc -.zshrc - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig +Downloads/.vimrc +.bashrc.zshrc +.gitconfig +.profile +.vimrc +.zshrc + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_managed_expand_dir.svg b/tests/__snapshots__/test_snapshots/test_managed_expand_dir.svg index bd09929..6642999 100644 --- a/tests/__snapshots__/test_snapshots/test_managed_expand_dir.svg +++ b/tests/__snapshots__/test_snapshots/test_managed_expand_dir.svg @@ -19,216 +19,216 @@ font-weight: 700; } - .terminal-4251972610-matrix { + .terminal-3750491139-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-4251972610-title { + .terminal-3750491139-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-4251972610-r1 { fill: #ff79c6 } -.terminal-4251972610-r2 { fill: #c5c8c6 } -.terminal-4251972610-r3 { fill: #f8f8f2 } -.terminal-4251972610-r4 { fill: #ffa6d9;text-decoration: underline; } -.terminal-4251972610-r5 { fill: #6272a4 } -.terminal-4251972610-r6 { fill: #bd93f9 } -.terminal-4251972610-r7 { fill: #909194 } -.terminal-4251972610-r8 { fill: #3c3e48 } -.terminal-4251972610-r9 { fill: #f8f8f2;font-weight: bold } -.terminal-4251972610-r10 { fill: #c0bcc5 } -.terminal-4251972610-r11 { fill: #181320;font-weight: bold } -.terminal-4251972610-r12 { fill: #503e69;font-weight: bold } -.terminal-4251972610-r13 { fill: #6272a4;font-weight: bold } -.terminal-4251972610-r14 { fill: #4e597e } -.terminal-4251972610-r15 { fill: #ffb86c;font-weight: bold } -.terminal-4251972610-r16 { fill: #ffb86c } -.terminal-4251972610-r17 { fill: #50fa7b } -.terminal-4251972610-r18 { fill: #b1b1b2;font-style: italic; } -.terminal-4251972610-r19 { fill: #acadb3 } -.terminal-4251972610-r20 { fill: #feb86c } -.terminal-4251972610-r21 { fill: #ff79c6;font-weight: bold } -.terminal-4251972610-r22 { fill: #585b65 } + .terminal-3750491139-r1 { fill: #ff79c6 } +.terminal-3750491139-r2 { fill: #c5c8c6 } +.terminal-3750491139-r3 { fill: #f8f8f2 } +.terminal-3750491139-r4 { fill: #ffa6d9;text-decoration: underline; } +.terminal-3750491139-r5 { fill: #6272a4 } +.terminal-3750491139-r6 { fill: #bd93f9 } +.terminal-3750491139-r7 { fill: #909194 } +.terminal-3750491139-r8 { fill: #3c3e48 } +.terminal-3750491139-r9 { fill: #f8f8f2;font-weight: bold } +.terminal-3750491139-r10 { fill: #c0bcc5 } +.terminal-3750491139-r11 { fill: #181320;font-weight: bold } +.terminal-3750491139-r12 { fill: #503e69;font-weight: bold } +.terminal-3750491139-r13 { fill: #6272a4;font-weight: bold } +.terminal-3750491139-r14 { fill: #4e597e } +.terminal-3750491139-r15 { fill: #ffb86c;font-weight: bold } +.terminal-3750491139-r16 { fill: #ffb86c } +.terminal-3750491139-r17 { fill: #50fa7b } +.terminal-3750491139-r18 { fill: #b1b1b2;font-style: italic; } +.terminal-3750491139-r19 { fill: #acadb3 } +.terminal-3750491139-r20 { fill: #feb86c } +.terminal-3750491139-r21 { fill: #ff79c6;font-weight: bold } +.terminal-3750491139-r22 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/└── nvim/ (1) -Documents/.bashrc -Downloads/.gitconfig -.bashrc.vimrc -.gitconfig.zshrc -.profile -.vimrc -.zshrc - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/└── nvim/ (1) +Documents/.bashrc +Downloads/.gitconfig +.bashrc.vimrc +.gitconfig.zshrc +.profile +.vimrc +.zshrc + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/__snapshots__/test_snapshots/test_managed_pane.svg b/tests/__snapshots__/test_snapshots/test_managed_pane.svg index 9f9e872..d8aee17 100644 --- a/tests/__snapshots__/test_snapshots/test_managed_pane.svg +++ b/tests/__snapshots__/test_snapshots/test_managed_pane.svg @@ -19,215 +19,215 @@ font-weight: 700; } - .terminal-1769329917-matrix { + .terminal-1210176766-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-1769329917-title { + .terminal-1210176766-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-1769329917-r1 { fill: #ff79c6 } -.terminal-1769329917-r2 { fill: #c5c8c6 } -.terminal-1769329917-r3 { fill: #f8f8f2 } -.terminal-1769329917-r4 { fill: #ffa6d9;text-decoration: underline; } -.terminal-1769329917-r5 { fill: #6272a4 } -.terminal-1769329917-r6 { fill: #bd93f9 } -.terminal-1769329917-r7 { fill: #909194 } -.terminal-1769329917-r8 { fill: #3c3e48 } -.terminal-1769329917-r9 { fill: #f8f8f2;font-weight: bold } -.terminal-1769329917-r10 { fill: #c0bcc5 } -.terminal-1769329917-r11 { fill: #181320;font-weight: bold } -.terminal-1769329917-r12 { fill: #503e69;font-weight: bold } -.terminal-1769329917-r13 { fill: #6272a4;font-weight: bold } -.terminal-1769329917-r14 { fill: #4e597e } -.terminal-1769329917-r15 { fill: #ffb86c } -.terminal-1769329917-r16 { fill: #50fa7b } -.terminal-1769329917-r17 { fill: #b1b1b2;font-style: italic; } -.terminal-1769329917-r18 { fill: #acadb3 } -.terminal-1769329917-r19 { fill: #feb86c } -.terminal-1769329917-r20 { fill: #ff79c6;font-weight: bold } -.terminal-1769329917-r21 { fill: #585b65 } + .terminal-1210176766-r1 { fill: #ff79c6 } +.terminal-1210176766-r2 { fill: #c5c8c6 } +.terminal-1210176766-r3 { fill: #f8f8f2 } +.terminal-1210176766-r4 { fill: #ffa6d9;text-decoration: underline; } +.terminal-1210176766-r5 { fill: #6272a4 } +.terminal-1210176766-r6 { fill: #bd93f9 } +.terminal-1210176766-r7 { fill: #909194 } +.terminal-1210176766-r8 { fill: #3c3e48 } +.terminal-1210176766-r9 { fill: #f8f8f2;font-weight: bold } +.terminal-1210176766-r10 { fill: #c0bcc5 } +.terminal-1210176766-r11 { fill: #181320;font-weight: bold } +.terminal-1210176766-r12 { fill: #503e69;font-weight: bold } +.terminal-1210176766-r13 { fill: #6272a4;font-weight: bold } +.terminal-1210176766-r14 { fill: #4e597e } +.terminal-1210176766-r15 { fill: #ffb86c } +.terminal-1210176766-r16 { fill: #50fa7b } +.terminal-1210176766-r17 { fill: #b1b1b2;font-style: italic; } +.terminal-1210176766-r18 { fill: #acadb3 } +.terminal-1210176766-r19 { fill: #feb86c } +.terminal-1210176766-r20 { fill: #ff79c6;font-weight: bold } +.terminal-1210176766-r21 { fill: #585b65 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - cheznav [DRY RUN] + cheznav [DRY RUN] - + - - ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ -[ djetelina/dotfiles ]GitHubChangelogcheznav -───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.3.0─┘ -LocalChezmoi Managed -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -.config/.config/ (1) -.local/.bashrc -Documents/.gitconfig -Downloads/.vimrc -.bashrc.zshrc -.gitconfig -.profile -.vimrc -.zshrc - - - - - - - - - - - - - - - - - - - - - - - - -manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable - ⏎ Context menu  : Commands  ? Help  q Quit ^p palette + + ───────────────────────────────────────────────────────────────────────────────────────────────────────────  ┌───────┐ +[ djetelina/dotfiles ]GitHubChangelogcheznav +───────────────────────────────────────────────────────────────────────────────────────────────────────────  └─0.4.0─┘ +LocalChezmoi Managed +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +.config/.config/ (1) +.local/.bashrc +Documents/.gitconfig +Downloads/.vimrc +.bashrc.zshrc +.gitconfig +.profile +.vimrc +.zshrc + + + + + + + + + + + + + + + + + + + + + + + + +manageddiff  🔄 uncommitted  🔒 encrypted  📝 template  ⚡ executable + ⏎ Context menu  : Commands  ? Help  q Quit ^p palette diff --git a/tests/test_cli_info.py b/tests/test_cli_info.py new file mode 100644 index 0000000..3cb9844 --- /dev/null +++ b/tests/test_cli_info.py @@ -0,0 +1,69 @@ +import subprocess +from unittest.mock import patch + +from cheznav.main import main + + +def test_info_does_not_launch_tui_when_chezmoi_missing(capsys): + with ( + patch("cheznav.main.CheznavApp") as app_cls, + patch("cheznav.info.shutil.which", return_value=None), + patch("sys.argv", ["cheznav", "info"]), + ): + main() + + app_cls.assert_not_called() + out = capsys.readouterr().out + assert "cheznav" in out + assert "chezmoi: not found" in out + + +def test_info_reports_versions_config_and_source(capsys, tmp_path, monkeypatch): + source = tmp_path / "source" + (source / ".git").mkdir(parents=True) + config_dir = tmp_path / "config" / "chezmoi" + config_dir.mkdir(parents=True) + (config_dir / "chezmoi.toml").write_text('sourceDir = "x"\n') + monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path / "config")) + + def fake_run(cmd, **_kwargs): + if cmd[-1] == "--version": + return subprocess.CompletedProcess(cmd, 0, stdout="chezmoi version v2.50.0\nrest\n", stderr="") + if cmd[-1] == "source-path": + return subprocess.CompletedProcess(cmd, 0, stdout=f"{source}\n", stderr="") + return subprocess.CompletedProcess(cmd, 1, stdout="", stderr="") + + with ( + patch("cheznav.main.CheznavApp") as app_cls, + patch("cheznav.info.shutil.which", return_value="/usr/bin/chezmoi"), + patch("cheznav.info.subprocess.run", side_effect=fake_run), + patch("sys.argv", ["cheznav", "info"]), + ): + main() + + app_cls.assert_not_called() + out = capsys.readouterr().out + assert "chezmoi version v2.50.0" in out + assert "chezmoi version v2.50.0\nrest" not in out # only the first line + assert str(config_dir / "chezmoi.toml") in out + assert "git repo" in out + + +def test_info_reports_uninitialized_source_and_no_config(capsys, tmp_path, monkeypatch): + monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path / "empty")) + + def fake_run(cmd, **_kwargs): + if cmd[-1] == "--version": + return subprocess.CompletedProcess(cmd, 0, stdout="chezmoi version v2.50.0\n", stderr="") + return subprocess.CompletedProcess(cmd, 1, stdout="", stderr="chezmoi: source dir not found\n") + + with ( + patch("cheznav.info.shutil.which", return_value="/usr/bin/chezmoi"), + patch("cheznav.info.subprocess.run", side_effect=fake_run), + patch("sys.argv", ["cheznav", "info"]), + ): + main() + + out = capsys.readouterr().out + assert "none found" in out + assert "source: not initialized" in out