Releases: xplshn/dbin
The 0.SEVENTH release!
- Pretty multi progressbars are displayed when installing a binary or fetching a given URL [Added by @akkuman]
- The progressbar can be customized in the config :)
- The AppBundleHUB repo now comes included in dbin's official metadata
- Metadata is now only fetched once per instance of
dbin
- Optimized
update
functionality - Improved the checksum checks during install/fetch
- fsearch.go was fixed and now it won't display binaries without a description (2 binaries in the repos didn't have descriptions) (22f7456)
Officially, now the only file that dbin
ever writes, is the config, and whatever binaries you request. We don't need to create a local database. (we just use XATTR to save the info of the binaries within the binaries themselves, during install.).
dbin
does not ever push user data to the outside world, it only fetches binaries from the given repositories. Logs for the build process of each binary/package are available.
MISC
- AppBundleHUB, a repo that uses Github actions to build one-liner recipes of programs like Ungoogled Chromium, thunar, PCSX2, etc. The metadata is generated by the Appstream-helper, a tool I developed for AppBundleHUB that automatically fetches the upstrea metadata of these programs just by matching their name, and it creates a metadata.json that can be used as a repository for
dbin
. - I also created a readme for the programs that are in charge of creating
dbin
's metadata (the file which contains the name of the programs, their download_url, and a lot more info), https://github.com/xplshn/dbin/tree/master/misc/cmd
Hopefully, this will help spawn a lot more dbin
repos! :)
If you maintain a repository that has self-contained or static programs, please hit me up, I'm open to setting up a GH action for you to be able to offer your repo as a dbin
repo.
TODO
- Fuzzy search should allow the user to supply more than one word
- Make update.go a little bit more verbose (almost like it used to be...)
- git (more) gud?
The 0.SIXTH release!
- Added a config format
- The new config format now supports Hooks, these let you execute things based on the extension of the program being installed, or do actions upon installation of any binary. You can call external commands, and also use the
run --transparent
mode ofdbin
via"use_run_from_cache": true
. You can also enable or disable, or simply remove these hooks from your config. You may also choose to - Integration for formats like AppBundle, AppImage, and NixAppImage has been added (these are simple Hooks in the default config)
info
(without arguments) does not require internet now, if you want to perform "lazy validation" (simply compare the names of files in your DBIN_INSTALL_DIR against the remote's) you can useinfo -r
.
Shall icons be displayed in the info
? I can use my eimg
library to display icons using Sixel, Kitty, Framebuffer graphics, ANSII ASCII art...
I still haven't added a multi-progressbar library. (I am both dumb and lazy. I couldn't figure it out last time I tried) (you may try making a PR :))
The 0.FIFTH release!
- Use XATTR in order to track which binaries were install by
dbin
, this ensures thatdbin
will never remove or update a binary that wasn't installed by it - Parallel
install
(haven't finished writing an implementation that uses multi progressbars, sorry) - Requests now disable cache
- findURL(), addToTrackerFile(), install.go & remove.go now always work in a bulk/parallel manner
- Improved info.go, made it work with the newer(not newest, yet) metadata format
- Added buffered IO in various funcs :)
The 0.FOURTH release
- General QOL improvements
- Cached binaries are no longer within
$DBIN_TRACKERFILE
- Enhanced cleanup of
run
- Better handling of the tracker file;
dbin run
is now sensitive to the trackerFile, eg: you can runbusybox/whoami
and then runcoreutils/whoami
andrun
will notice that$DBIN_CACHEDIR/whoami
is NOTcoreutils/whoami
and will re-fetch the correctwhoami
. dbin search
now handles cached binaries correctly
Note: This nix object correction thingie is computationally expensive. Its regexp. It may be unreliable. Thus, I am providing two sets of binaries, ones without this madness and ones with it enabled. (see the 0.THIRD release for details)
EDIT:
- Migrated metadata to
dbin-metadata
repo. I am deeply sorry for the 10 hours of downtime update
andinfo
(without arguments) will ignore symlinks
The 0.THIRD release
- Better error propagation in the functions related to
install
,update
,run
and in./findurl.go
- We now correct nix objects downloaded from the repo. Yeah, I do not know why those are there, but they're not being removed anytime soon (apparently I'm the only person that finds it annoying). (do
curl https://bin.ajam.dev/x86_64_Linux/Baseutils/openssl/c_rehash
to see an example of what I'm talking about) - Errors messages are now more consistent
revive
,gocritic
andgofumpt
return no warnings in our codebase :)- The help page now displays the env variables section
- Faith and hope has been re-instated, it was previously removed due to issues with the
json
parsing library
Note: This nix object correction thingie is expensive. Its regexp. It may be unreliable. Thus, I am providing two sets of binaries, ones without this madness and ones with it enabled.
The 0.SECOND release
- Better handling of errors in install.go, remove.go, update.go, run.go, findurl.go
- Handle verbosity levels correctly
- Updated the examples section in the help page
- Updated the CCMD library, now the help page prints its sections in the correct order (ALWAYS)
- We now support a hobby operating system called Windows (it was a 2 lines change anyways)
run.go
is now more portable, we dropped thesyscall
package in favor of usingos.Stat
to get the ATIME of files inDBIN_CACHEDIR
The 0.FIRST release!
- Added everything
bigdl
had - We now have a thing called the tracker file. It tracks which implementations of common software you prefer, for example, if you did
dbin add busybox/who
, you will be able to dodbin update
anddbin
will now that it must updatebusybox/who
even if the file is just namedwho
. Same for commands such asremove
andinfo
. They will use the tracker file to show which specific implementation of a program you have, since there are various suites of programs in the repos and some of those are coreutilities such as toybox, gnu coreutils and busybox - Parallel installation of programs + Reliable updates