Skip to content

feat: add local binaries update system - #629

Merged
shunkakinoki merged 1 commit into
mainfrom
feat/local-binaries-update
Jan 20, 2026
Merged

feat: add local binaries update system#629
shunkakinoki merged 1 commit into
mainfrom
feat/local-binaries-update

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Jan 20, 2026

Copy link
Copy Markdown
Owner

Changes

  • Add scripts/update-local-binaries.sh to update local binaries from .local-binaries.txt
  • Add home-manager service make-updater for automated updates
  • Update Makefile targets: rename upgrade-overlays to overlays-upgrade, rename nix-update to nix-upgrade, add update-local-binaries target
  • Add comprehensive shell tests for update script and service
  • Exclude .claude directories from ShellCheck

Technical Details

  • Update script validates binary paths and rebuilds using make
  • Home manager service runs hourly checks for binary updates
  • Tests cover path validation, binary detection, and rebuild processes
  • Improved Makefile organization with better Update/Upgrade separation

Testing

  • All shell tests pass
  • ShellCheck excludes added for .claude directories

Generated with opencode by claude-sonnet-4.5


Summary by cubic

Adds an automated system to update local binaries listed in .local-binaries.txt via a new script and a Home Manager timered service. Also simplifies Makefile targets and adds tests to cover the flow.

  • New Features

    • Script: scripts/update-local-binaries.sh pulls ghq repos, builds via make or cargo, supports a filter arg, and prints a summary.
    • Service: Home Manager make-updater runs make update on macOS (launchd) and Linux (systemd) every 3 hours.
    • Makefile: adds update and update-local-binaries targets.
    • Tests: shell specs for the script and service; coverage updates.
  • Refactors

    • Target renames: nix-update → nix-upgrade, upgrade-overlays → overlays-upgrade; simplified Update vs Upgrade groups.
    • ShellCheck: exclude .claude and related paths.
    • Use nix-flake-upgrade in the upgrade flow.

Written for commit fc29411. Summary will update on new commits.

Copilot AI review requested due to automatic review settings January 20, 2026 12:39
@shunkakinoki shunkakinoki added the enhancement Indicates new feature requests. label Jan 20, 2026
@mesa-dot-dev

mesa-dot-dev Bot commented Jan 20, 2026

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@shunkakinoki
shunkakinoki enabled auto-merge (squash) January 20, 2026 12:40
@coderabbitai

coderabbitai Bot commented Jan 20, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Introduced automated periodic update service for dotfiles (runs every 3 hours on macOS and Linux).
    • Added local binaries update workflow with progress tracking and error reporting.
  • Refactor

    • Reorganized update/upgrade commands for improved clarity and consistency.
  • Tests

    • Added comprehensive test coverage for new update scripts.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

This PR refactors the dotfiles update workflow by introducing a new cross-platform automated updater service and restructuring Makefile targets. It adds platform-specific (Darwin/Linux) periodic updater services, introduces a script for managing local binary builds, reorganizes Makefile targets (update → update-local-binaries, nix-update → nix-upgrade), and includes comprehensive test coverage for new components.

Changes

Cohort / File(s) Summary
Makefile Updates
Makefile
Reorganizes build targets: renames nix-update/nix-flake-update to nix-upgrade/nix-flake-upgrade; replaces update with update-local-binaries as primary entry point; removes shell-update and upgrade-overlays; adds overlays-upgrade target; adjusts install dependencies (removes nix-flake-update, adds shell-install); extends shell check exclusions for new paths.
Local Binaries Management
.local-binaries.txt, scripts/update-local-binaries.sh
Updates gastown binary path to point to subdirectory (~/ghq/github.com/steveyegge/gastown/gt); introduces new update-local-binaries.sh script that orchestrates cloning, updating, and building repositories listed in config file via Make or Cargo.
Automated Updater Service
home-manager/services/default.nix, home-manager/services/make-updater/...
Adds new make-updater service module: exports launchd agent (macOS, 3-hour interval) and systemd service + timer (Linux, 3-hour schedule with AUTOMATED_UPDATE=true env var); includes augmented PATH and log file routing; runs update.sh script that executes make update from ~/dotfiles.
Test Coverage
spec/coverage_spec.sh, spec/make_updater_spec.sh, spec/update_local_binaries_spec.sh
Extends coverage tracking with new scripts; adds comprehensive tests for make-updater/update.sh (shebang, strict mode, cd/make invocation); adds extensive test suite for update-local-binaries.sh (config parsing, color definitions, helper functions, repo detection, build logic, git operations, filtering, error handling).

Sequence Diagrams

sequenceDiagram
    participant Timer as Scheduler<br/>(launchd/systemd)
    participant Service as Updater Service<br/>(Agent/Systemd)
    participant UpdateScript as update.sh
    participant Make as Make System
    
    Timer->>Service: Trigger (3-hour interval)
    Service->>Service: Set augmented PATH<br/>Set AUTOMATED_UPDATE=true
    Service->>UpdateScript: Execute with bash
    UpdateScript->>UpdateScript: cd ~/dotfiles
    UpdateScript->>Make: make update
    Make->>Make: Execute update targets
    Make-->>UpdateScript: Return status
    UpdateScript-->>Service: Exit with code
    Service->>Service: Log output to temp files
Loading
sequenceDiagram
    participant Make as Makefile
    participant UpdateBin as update-local-binaries.sh
    participant GHQ as ghq
    participant Repo as Local Repository
    participant Build as Build System<br/>(Make/Cargo)
    
    Make->>UpdateBin: make update-local-binaries
    UpdateBin->>UpdateBin: Parse .local-binaries.txt
    UpdateBin->>UpdateBin: Determine repo path<br/>(ghq layout)
    UpdateBin->>GHQ: ghq get (if missing)
    GHQ-->>Repo: Clone repository
    UpdateBin->>Repo: git pull
    UpdateBin->>Repo: Detect build system<br/>(Makefile or Cargo.toml)
    Repo->>Build: Execute make/cargo build
    Build-->>Repo: Build completes
    UpdateBin->>UpdateBin: Track success/failure
    UpdateBin->>UpdateBin: Print colored summary
    UpdateBin-->>Make: Exit with status
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 A rabbit's ode to automated updates

The binaries dance in perfect time,
Each three-hour bell, a gentle chime.
From Darwin's launchd to Linux's beat,
The updater hops—my work's complete! 🏃‍♂️✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/local-binaries-update

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @shunkakinoki, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's maintenance capabilities by introducing a robust and automated system for managing and updating local binaries. It centralizes the process of fetching the latest code and rebuilding these binaries, streamlining developer workflows and ensuring dependencies are current. The changes also improve the clarity and organization of the project's build and update mechanisms through thoughtful Makefile refactoring and comprehensive testing, contributing to a more maintainable and efficient development environment.

Highlights

  • Automated Local Binary Updates: Introduced a new script (scripts/update-local-binaries.sh) to automatically pull the latest changes and rebuild local binaries listed in .local-binaries.txt, supporting both Makefile and Cargo.toml based projects.
  • Home Manager Service for Periodic Updates: Added a new Home Manager service (make-updater) that periodically executes make update (hourly on Darwin, every 3 hours on Linux) to keep the system's local binaries and other components up-to-date automatically.
  • Makefile Refactoring and Clarity: Refactored Makefile targets to clearly distinguish between 'update' (for local binaries) and 'upgrade' (for Nix flakes and overlays), including renaming nix-update to nix-upgrade and upgrade-overlays to overlays-upgrade.
  • Comprehensive Shell Testing: Added extensive shell tests for both the new local binaries update script and the Home Manager update service, ensuring robust functionality, error handling, and correct behavior across various scenarios.
  • ShellCheck Exclusions: Updated the shell-check Makefile target to exclude .claude and .codex directories, preventing linting errors in generated or third-party code.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mesa-dot-dev

mesa-dot-dev Bot commented Jan 20, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Added a local binaries update system with an automated home-manager service.

What changed?

  • Added scripts/update-local-binaries.sh to update local binaries from .local-binaries.txt.
    • This script validates binary paths and rebuilds using make.
  • Added a home-manager service make-updater for automated hourly checks and updates of binaries.
  • Updated Makefile targets:
    • Renamed upgrade-overlays to overlays-upgrade.
    • Renamed nix-update to nix-upgrade.
    • Added a new update-local-binaries target for improved Makefile organization.
  • Added comprehensive shell tests for the update script and service, covering path validation, binary detection, and rebuild processes.
  • Excluded .claude directories from ShellCheck.

Description generated by Mesa. Update settings

@shunkakinoki
shunkakinoki disabled auto-merge January 20, 2026 12:40
@shunkakinoki
shunkakinoki merged commit efbbbe1 into main Jan 20, 2026
28 of 30 checks passed
@shunkakinoki
shunkakinoki deleted the feat/local-binaries-update branch January 20, 2026 12:41

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new system for updating local binaries, which is a great addition. The changes are well-structured, with a new script, a home-manager service, and corresponding Makefile targets. The refactoring of update and upgrade targets in the Makefile improves clarity. The addition of comprehensive tests is also commendable. I've found a few issues, mostly related to correctness in the new script and service configuration, and some opportunities for code simplification. Overall, this is a solid contribution.

Comment on lines +15 to +20
lib.makeBinPath [
pkgs.git
pkgs.bash
pkgs.coreutils
pkgs.gnumake
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The launchd agent's PATH is missing dependencies required by the update script. The script may need to build Rust projects with cargo or clone repositories with ghq. This will fail if they are not in the PATH. Please add pkgs.rustc (for cargo) and pkgs.ghq to the lib.makeBinPath list.

          lib.makeBinPath [
            pkgs.bash
            pkgs.coreutils
            pkgs.ghq
            pkgs.git
            pkgs.gnumake
            pkgs.rustc
          ]

Comment on lines +37 to +48
lib.makeBinPath [
pkgs.bash
pkgs.coreutils
pkgs.curl
pkgs.gawk
pkgs.git
pkgs.gnumake
pkgs.gnused
pkgs.nix
pkgs.sudo
pkgs.which
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The systemd service's PATH is missing dependencies required by the update script. The script may need to build Rust projects with cargo or clone repositories with ghq. This will fail if they are not in the PATH. Please add pkgs.rustc (for cargo) and pkgs.ghq to the lib.makeBinPath list.

          lib.makeBinPath [
            pkgs.bash
            pkgs.coreutils
            pkgs.curl
            pkgs.gawk
            pkgs.ghq
            pkgs.git
            pkgs.gnumake
            pkgs.gnused
            pkgs.nix
            pkgs.rustc
            pkgs.sudo
            pkgs.which
          ]

done

# Fallback: assume 4 levels deep from ghq root (github.com/owner/repo)
echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The fallback logic in get_repo_dir is broken. At the beginning of the function, binary_path has ~ expanded to $HOME, but the sed command attempts to match a literal ~, which will fail. The second sed is also redundant.

To fix this, use double quotes in the sed pattern to allow for $HOME expansion and remove the second sed call.

Suggested change
echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"
echo "$binary_path" | sed -E "s|($HOME/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|"

Comment thread Makefile

.PHONY: install
install: setup nix-flake-update nix-build nix-switch shell-install ## Set up full environment (setup, flake-update, build, switch, shell-install).
install: setup nix-build nix-switch shell-install ## Set up full environment (setup, flake-update, build, switch, shell-install).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The comment for the install target is out of sync with its dependencies. It still mentions flake-update, but nix-flake-update has been removed from the target. Please update the comment to accurately reflect the target's behavior.

install: setup nix-build nix-switch shell-install ## Set up full environment (setup, build, switch, shell-install).

Comment on lines +98 to +113
if [ -f "$repo_dir/Makefile" ]; then
if make -C "$repo_dir" build 2>&1; then
return 0
else
return 1
fi
elif [ -f "$repo_dir/Cargo.toml" ]; then
if (cd "$repo_dir" && cargo build --release 2>&1); then
return 0
else
return 1
fi
else
log_warn " No Makefile or Cargo.toml found, skipping build"
return 0
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The if ...; then return 0; else return 1; fi pattern used for build commands is verbose. You can simplify this by letting the build command's exit code propagate directly. The calling function's if statement will correctly interpret a zero exit code as success and non-zero as failure.

Suggested change
if [ -f "$repo_dir/Makefile" ]; then
if make -C "$repo_dir" build 2>&1; then
return 0
else
return 1
fi
elif [ -f "$repo_dir/Cargo.toml" ]; then
if (cd "$repo_dir" && cargo build --release 2>&1); then
return 0
else
return 1
fi
else
log_warn " No Makefile or Cargo.toml found, skipping build"
return 0
fi
if [ -f "$repo_dir/Makefile" ]; then
make -C "$repo_dir" build 2>&1
elif [ -f "$repo_dir/Cargo.toml" ]; then
(cd "$repo_dir" && cargo build --release 2>&1)
else
log_warn " No Makefile or Cargo.toml found, skipping build"
return 0
fi

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds a local binaries update system that automates the process of updating and rebuilding local development binaries. The system consists of a script that reads binary paths from .local-binaries.txt, updates their repositories, and rebuilds them using their respective build systems (Make or Cargo).

Changes:

  • Added scripts/update-local-binaries.sh for automated binary updates with git pull and rebuild functionality
  • Added make-updater home-manager service to run updates every 3 hours on both macOS and Linux
  • Reorganized Makefile targets: renamed upgrade-overlaysoverlays-upgrade, nix-updatenix-upgrade, and redefined update to focus on local binaries
  • Added comprehensive shell tests with 487 lines covering script functionality
  • Updated ShellCheck exclusions to skip .claude directories

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/update-local-binaries.sh New script implementing local binary update logic with path detection, git operations, and build system detection
home-manager/services/make-updater/update.sh Service wrapper script that runs make update from the dotfiles directory
home-manager/services/make-updater/default.nix Service configuration for both macOS (launchd) and Linux (systemd) with 3-hour interval
home-manager/services/default.nix Integration of make-updater service into home-manager configuration
spec/update_local_binaries_spec.sh Comprehensive test suite for the update script (487 lines)
spec/make_updater_spec.sh Basic tests for the make-updater service script
spec/coverage_spec.sh Added test coverage entries for new scripts
Makefile Reorganized Update/Upgrade sections, renamed targets for consistency, added update-local-binaries target, updated ShellCheck exclusions
.local-binaries.txt Fixed gastown entry to include binary path /gt

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +321 to +324
It 'finds repo root by .git directory'
When run bash "$TEMP_SCRIPT" "$TEMP_DIR/ghq/github.com/owner/repo/target/release/mybin"
The output should eq "$TEMP_DIR/ghq/github.com/owner/repo"
End

Copilot AI Jan 20, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test only covers the case where the .git directory is found. The fallback path logic at line 81 in the main script should also be tested, especially since it has a bug where it tries to match the tilde pattern after the path has already been expanded.

Copilot uses AI. Check for mistakes.
pkgs.coreutils
pkgs.gnumake
]
}:/opt/homebrew/bin:/usr/local/bin";

Copilot AI Jan 20, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Linux systemd service sets AUTOMATED_UPDATE=true but the macOS launchd service doesn't set this environment variable. This creates inconsistent behavior between platforms - on Linux, certain operations will be skipped (like flake updates per the Makefile logic) but on macOS they won't be. Consider setting this variable for both platforms or documenting why the difference is intentional.

Suggested change
}:/opt/homebrew/bin:/usr/local/bin";
}:/opt/homebrew/bin:/usr/local/bin";
AUTOMATED_UPDATE = "true";

Copilot uses AI. Check for mistakes.
done

# Fallback: assume 4 levels deep from ghq root (github.com/owner/repo)
echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"

Copilot AI Jan 20, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fallback sed pattern uses ~/ghq/ but at this point in the function (line 66), the tilde has already been expanded to $HOME. The pattern should use $HOME/ghq/ or the expanded path format instead. This will cause the fallback to fail when no .git directory is found in the path hierarchy.

Suggested change
echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"
local ghq_root
ghq_root="$(get_ghq_root)"
echo "$binary_path" | sed -E "s|(${ghq_root}/[^/]+/[^/]+/[^/]+)/.*|\1|"

Copilot uses AI. Check for mistakes.
Comment thread Makefile

.PHONY: install
install: setup nix-flake-update nix-build nix-switch shell-install ## Set up full environment (setup, flake-update, build, switch, shell-install).
install: setup nix-build nix-switch shell-install ## Set up full environment (setup, flake-update, build, switch, shell-install).

Copilot AI Jan 20, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The help comment for the install target mentions "flake-update" but the target definition no longer includes nix-flake-update (which was removed in this change). The comment should be updated to accurately reflect the current dependencies.

Suggested change
install: setup nix-build nix-switch shell-install ## Set up full environment (setup, flake-update, build, switch, shell-install).
install: setup nix-build nix-switch shell-install ## Set up full environment (setup, build, switch, shell-install).

Copilot uses AI. Check for mistakes.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 9 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="home-manager/services/make-updater/default.nix">

<violation number="1" location="home-manager/services/make-updater/default.nix:18">
P2: macOS launchd PATH omits sed/gnused, but make update requires sed, causing the mac updater to fail</violation>
</file>

<file name="scripts/update-local-binaries.sh">

<violation number="1" location="scripts/update-local-binaries.sh:81">
P2: Fallback repo detection never matches expanded paths, returning the binary path and causing ghq clone/pull against an invalid repo path when .git is missing</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

lib.makeBinPath [
pkgs.git
pkgs.bash
pkgs.coreutils

@cubic-dev-ai cubic-dev-ai Bot Jan 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: macOS launchd PATH omits sed/gnused, but make update requires sed, causing the mac updater to fail

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At home-manager/services/make-updater/default.nix, line 18:

<comment>macOS launchd PATH omits sed/gnused, but make update requires sed, causing the mac updater to fail</comment>

<file context>
@@ -0,0 +1,68 @@
+          lib.makeBinPath [
+            pkgs.git
+            pkgs.bash
+            pkgs.coreutils
+            pkgs.gnumake
+          ]
</file context>
Fix with Cubic

done

# Fallback: assume 4 levels deep from ghq root (github.com/owner/repo)
echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"

@cubic-dev-ai cubic-dev-ai Bot Jan 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Fallback repo detection never matches expanded paths, returning the binary path and causing ghq clone/pull against an invalid repo path when .git is missing

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/update-local-binaries.sh, line 81:

<comment>Fallback repo detection never matches expanded paths, returning the binary path and causing ghq clone/pull against an invalid repo path when .git is missing</comment>

<file context>
@@ -0,0 +1,251 @@
+  done
+
+  # Fallback: assume 4 levels deep from ghq root (github.com/owner/repo)
+  echo "$binary_path" | sed -E 's|(~/ghq/[^/]+/[^/]+/[^/]+)/.*|\1|' | sed "s|~|$HOME|"
+}
+
</file context>
Fix with Cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Indicates new feature requests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants