Skip to content

Releases: xplshn/dbin

The 0.SEVENTH release!

05 Dec 23:22
19ba2f6
Compare
Choose a tag to compare
  • 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
  1. Fuzzy search should allow the user to supply more than one word
  2. Make update.go a little bit more verbose (almost like it used to be...)
  3. git (more) gud?

The 0.SIXTH release!

06 Nov 00:47
Compare
Choose a tag to compare
  • 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 of dbin 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 use info -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!

06 Oct 19:18
Compare
Choose a tag to compare
  • Use XATTR in order to track which binaries were install by dbin, this ensures that dbin 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

03 Sep 03:14
Compare
Choose a tag to compare
  • 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 run busybox/whoami and then run coreutils/whoami and run will notice that $DBIN_CACHEDIR/whoami is NOT coreutils/whoami and will re-fetch the correct whoami.
  • 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 and info (without arguments) will ignore symlinks

The 0.THIRD release

30 Aug 17:54
Compare
Choose a tag to compare
  • 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 and gofumpt 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

24 Aug 23:15
Compare
Choose a tag to compare
  • 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 the syscall package in favor of using os.Stat to get the ATIME of files in DBIN_CACHEDIR

The 0.FIRST release!

23 Aug 01:57
Compare
Choose a tag to compare
  • 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 do dbin update and dbin will now that it must update busybox/who even if the file is just named who. Same for commands such as remove and info. 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