mcfly, new recipe (#13160)

mcfly, new recipe

Co-authored-by: OscarL <oscar.lesta@gmail.com>
This commit is contained in:
Schrijvers Luc
2025-11-08 09:13:18 +01:00
committed by GitHub
parent 075f79d187
commit 5b1d65258d
2 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
SUMMARY="Context-aware bash history search replacement (ctrl-r)"
DESCRIPTION="McFly replaces your default ctrl-r shell history search with an intelligent search \
engine that takes into account your working directory and the context of recently executed \
commands. McFly's suggestions are prioritized in real time with a small neural network.
TL;DR: an upgraded ctrl-r where history results make sense for what you're working on right now.
Features:
* Rebinds ctrl-r to bring up a full-screen reverse history search prioritized with a small neural \
network.
* Augments your shell history to track command exit status, timestamp, and execution directory in \
a SQLite database.
* Maintains your normal shell history file as well so that you can stop using McFly whenever you \
want.
* Unicode support throughout.
* Includes a simple action to scrub any history item from the McFly database and your shell \
history files.
* Designed to be extensible for other shells in the future.
* Written in Rust, so it's fast and safe.
* You can type % to match any number of characters when searching.
* Supports Zsh, Bash (version 3+), and PowerShell (version 7+)
To enable McFly on:
* bash: add 'eval \"\$(mcfly init bash)\"' to the end of ~/config/settings/profile
* zsh: add 'eval \"\$(mcfly init zsh)\"' to the end of ~/config/settings/zsh/zshrc
And then restart Terminal."
HOMEPAGE="https://github.com/cantino/mcfly"
COPYRIGHT="2018 Andrew Cantino"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/cantino/mcfly/archive/refs/tags/v$portVersion.tar.gz"
CHECKSUM_SHA256="194383276095b71dd6d085fb959ba7981384cbe09776fd5f182e95bbed5a3a13"
PATCHES="mcfly-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
mcfly$secondaryArchSuffix = $portVersion
cmd:mcfly$commandSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:cargo
cmd:gcc$secondaryArchSuffix
cmd:rustc
"
BUILD()
{
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
cargo build --release
}
INSTALL()
{
install -d $commandBinDir $documentationDir/packages/mcfly
install -t $commandBinDir target/release/mcfly
install -t $documentationDir/packages/mcfly README.md
}

View File

@@ -0,0 +1,55 @@
From a45d650b748b92b6743c01d92d57b6c6003eba42 Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Wed, 29 Oct 2025 13:47:30 +0100
Subject: add build optimizations
Co-authored-by: Oscar Lesta <oscar.lesta@gmail.com>
diff --git a/Cargo.toml b/Cargo.toml
index 7777937..562e09a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,7 +10,11 @@ categories = ["command-line-utilities"]
exclude = ["HomebrewFormula", "HomebrewFormula/*", "pkg/*", "docs/*"]
[profile.release]
+opt-level = 'z'
lto = true
+codegen-units = 1
+panic = 'abort'
+strip = true
[profile.dev]
debug = true
--
2.51.0
From 7188ea0666b3767a0e8756fbd5a19f8b200b16ba Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Wed, 29 Oct 2025 13:36:21 +0100
Subject: Haiku doesn't have TIOCSTI in libroot
diff --git a/src/fake_typer.rs b/src/fake_typer.rs
index ba97d39..fd63ec9 100644
--- a/src/fake_typer.rs
+++ b/src/fake_typer.rs
@@ -12,10 +12,10 @@ extern "C" {
pub fn use_tiocsti(string: &str) {
for byte in string.as_bytes() {
let a: *const u8 = byte;
- assert!(
- unsafe { ioctl(0, libc::TIOCSTI.try_into().unwrap(), a) } >= 0,
- "Error encountered when calling ioctl"
- );
+// assert!(
+// unsafe { ioctl(0, libc::TIOCSTI.try_into().unwrap(), a) } >= 0,
+// "Error encountered when calling ioctl"
+// );
}
}
--
2.51.0