bluefin-cli on bluefin thread

bluefin-cli on bluefin thread
62 Replies
j0rge
j0rge3mo ago
Ok, so crazy idea cc @M2 @EyeCantCU @bketelsen when m2 wanted atuin on the host, he did it this way:
j0rge
j0rge3mo ago
No description
j0rge
j0rge3mo ago
and then I looked at the bling we're shipping in bluefin-cli ... and they're all freaking rust apps we could do zoxide, uutils, eza, fd, etc just by copying the binaries over lol
M2
M23mo ago
Yepp. That's why i did it with atuin
j0rge
j0rge3mo ago
basically, we don't need the systext for these, we can just copy the binaries, toss the config on the host, and then go sit on a beach?
M2
M23mo ago
I would hesitate to do uutils but the others absolutely
j0rge
j0rge3mo ago
that's fine, that's not a deal breaker but I think people loved that other bling, and this lets us put it on the system and leaving brew for their stuff, what do you think? ripgrep is rust too, nice!
M2
M23mo ago
Fine. Basically merge the cli experience from bluefin-cli.
j0rge
j0rge3mo ago
yeah what do you think? and it comes from wolfi so it'll be nice and fresh ok I'm going to PR the binaries. 😄
M2
M23mo ago
Very doable. Maybe don't do the aliases and have a ujust to drop in aliases to profiles
j0rge
j0rge3mo ago
I'm kinda wanting to just atuin + bling it up by default like, just turn it all on but that might be too much, dunno
bketelsen
bketelsen3mo ago
i'm not a fan of turning it on by default
M2
M23mo ago
I guess we could do eza by default. I think zoxide supports everything that cd does (at least I think it claims it handles it) Aliases shouldn't affect scripts
bketelsen
bketelsen3mo ago
we'll be inundated with questions about how to remove it
M2
M23mo ago
Yeah
bketelsen
bketelsen3mo ago
ship it but let people call a just command to bling it up
j0rge
j0rge3mo ago
ok ujust bluefin-cli lol?
bketelsen
bketelsen3mo ago
all the fleek configs are easy to drop in /usr/share/ublue-os and copy or symlink into home
bketelsen
bketelsen3mo ago
sold you started the thread with "crazy idea" but I wondered long ago why we didn't do this where we could
M2
M23mo ago
Ripgrep is rg as the name Just realized.... Those are all going to fail
bketelsen
bketelsen3mo ago
fixed
j0rge
j0rge3mo ago
sec, gotta respin ISOs, keep talking
bketelsen
bketelsen3mo ago
let the rg build fix first?
j0rge
j0rge3mo ago
also realized, I want to remove a bunch from packages.json. Like I'd rather get restic/rclone from wolfi than fedora, etc.
M2
M23mo ago
For some of these I wonder if steering people towards containers maybe better? Layering is the easy button, but unsure if that's too odd of a pattern for everyone? But I do like the idea of getting things from Wolfi instead of rpm-ostree for cli stuff.
j0rge
j0rge3mo ago
I was doing a video today and then people were like "we need a video on how to use containers, etc." and I found like hours of devcontainers videos, tutorials, etc. so I'm wondering if curating some content that way is the way to do it? https://github.com/ublue-os/bluefin/pull/1001/files ok last one
M2
M23mo ago
Yeah the how to use dev-containers was helpful. I think people don't realize a lot of docker videos are directly translatable.
j0rge
j0rge3mo ago
yeah if i had a bunch of money I'd just pay some youtuber to do a walkthrough of all this stuff stuff but using bluefin https://www.youtube.com/playlist?list=PLj6YeMhvp2S5G_X6ZyMc8gfXPMFPg3O31 example
M2
M23mo ago
Rclone might need rclonefs And it provides a mount helper as well.
j0rge
j0rge3mo ago
oh it does, let me just revert that one
M2
M23mo ago
And I actually don't think we have it in bluefin-cli currently
j0rge
j0rge3mo ago
it's in wolfi so we may need to add it
M2
M23mo ago
Yeah revert that for now. I think we grab the rust stuff right now. We also may need to grab completions as well
j0rge
j0rge3mo ago
pushed
M2
M23mo ago
I'm off to bed. But stoked to have zoxide and eza all on my system now
j0rge
j0rge3mo ago
yeah we might as well just own it like, people loved that setup, so did I ok I pushed, I'll leave the PR open! (wondering if the thing RJ had for building on the spot with wolfi --- like I wonder if we could just build these with melange and copy them into place with the right completions, man pages, etc. also can we also have ujust bluefin-cli call the brew step too? I'm thinking just one knob to crank it up instead of two.
EyeCantCU
EyeCantCU3mo ago
This is freaking awesome. I'll give it a better look in the morning
j0rge
j0rge3mo ago
lol for the same reason homebrew path. hahahahah
fiftydinar
fiftydinar3mo ago
Is upstream brew informed about this issue? Maybe those instructions can be universal?
M2
M23mo ago
I'm unsure if brew sees it as an issue. Brew expects it to be first in path. Putting it last in path makes brew doctor throw a warning.
bketelsen
bketelsen3mo ago
looks like the restic file from woifi doesn't exist ok let's chat about maintainability and standardization the atuin target of the justfile modifies .bashrc, .zshrc, and config.fish directly I think this is a mistake in the long term the stock .bashrc file has this block
17 # User specific aliases and functions
18 if [ -d ~/.bashrc.d ]; then
19 for rc in ~/.bashrc.d/*; do
20 if [ -f "$rc" ]; then
21 . "$rc"
22 fi
23 done
24 fi
17 # User specific aliases and functions
18 if [ -d ~/.bashrc.d ]; then
19 for rc in ~/.bashrc.d/*; do
20 if [ -f "$rc" ]; then
21 . "$rc"
22 fi
23 done
24 fi
i think anything and everything we do to modify user configs or enable our -cli functionality should use this pattern. (I don't know if it exists by default for fish and zsh but can easily be added) if we put configs in a well known place it's easier to change them when we update something, and easier to document + support questions Also we could copy files into these directories rather than symlink. This is $HOME and I expect to own it
M2
M23mo ago
I like the drop in files and use that pattern a lot, but people remove that block or do odd things like having only a .bash_profile. I would prefer going the drop in route but we saw that a lot of people don't actually use it. I like copying better than symlinks but then we have to do logic for updates. In my mind if we go copy route we shouldn't expect to be able to edit that file.
j0rge
j0rge3mo ago
PR fixed, I'm sorry I thought I did that last night, my bad.
M2
M23mo ago
Looks like fail right now is due to kernel update needing to trickle through and no longer missing stuff Nope rclone is back. That needs to be removed as well.
j0rge
j0rge3mo ago
sec, sorry been trying to get to the bottom of the kernel skew you want them both out? on it ok all set
M2
M23mo ago
Rclone isn't on bluefin-cli toolbox yet. Restic package doesn't actually provide the binary. But go, rust, and other statically compiled packages would be good to consume with this model. If we are doing this we may want to make an image that is more suited for doing copy from actions. We may want something for completions as well. If we do the cleaner image we could do a copy / and have everything with completions on the same layer.
j0rge
j0rge3mo ago
nod I added rclone to the toolbox but removed it from bluefin anyway (since that failed builds anyway)
M2
M23mo ago
If I can find some time this week I'll see if I can put together a container to make this copy over cleaner. But brew + this means I may consider moving from dx to plain bluefin (VM/incus is still kinda needed though)
bketelsen
bketelsen3mo ago
@M2 I haven't installed incus since I paved this machine for the new isos, but I think I'm going to need it. I found an app I couldn't build with brew today.
M2
M23mo ago
I may consider seeing how bad incus inside a rootful podman container goes if I switch away from dx.
j0rge
j0rge2mo ago
I'd like to see what RJ says, if it's wolfi maybe there's some melange building step we could do so it builds when we build the container or something? though I suppose we could do that in a container and it'd still be fast but I found a 1:1 mapping so far from bluefin-cli but I also wonder if like a melange step could also do the rest of the stuff in the package, autocompletions, man pages, etc. (I could be totally wrong though) @EyeCantCU in here yeah I wonder if inshellisense is worth the pain like maybe we should get the workflow in place instead
EyeCantCU
EyeCantCU2mo ago
It probably isn't. It's really cool, but it's still in an alpha state anyway. When it actually has a stable release, there may be a chance I could land it in Wolfi
j0rge
j0rge2mo ago
yeah we can revisit later, it's probably better to get ready for when syext stuff lands like I wonder if we could also produce the raw files from the toolboxes
EyeCantCU
EyeCantCU2mo ago
I don't see why not. That would be awesome
j0rge
j0rge2mo ago
yeah then we could have our "wolfi OS" on the bare metal, we could effectively replace the user-facing parts of the OS. then I could just daily drive apk or brew, all isolated in there. AND it'd be the same package versions as .... the images you use in the cloud. then we can remove a ton of stuff from the images and just have it in the wolfi systext stableish OS with a recent kernel + a rolling userspace. It's perfect.
EyeCantCU
EyeCantCU2mo ago
I've been showing the images and toolboxes we build to people at Chainguard and they love it. Going as far as Wolfi just being the default way to install most packages and interact with the CLI would be incredible You're right - it would be perfect. I don't know of many other projects going to this length to provide an experience this good out of the box. It's just unreal to me
j0rge
j0rge2mo ago
yeah it's why we now call @bketelsen The Reclaimer of the Final Shape. Oh, I think it was Architect of the Final Shape. Sorry I'm getting all the minibosses mixed up. hoping everything we need is in systemd 256
EyeCantCU
EyeCantCU2mo ago
Lmao, fitting title. Really hope so 🙂
bketelsen
bketelsen2mo ago
Reclaimer of the Final Shape, Architect of Awesomeness, First of His Name
bketelsen
bketelsen2mo ago
after I finish this blncus, i'm starting on the SysextManager now that Gnome is my beyotch