Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Faster package count on Alpine Linux #170

Merged
merged 1 commit into from
Jun 2, 2024

Conversation

Gobidev
Copy link
Contributor

@Gobidev Gobidev commented May 27, 2024

On Alpine Linux, packages can be counted by counting the amount of empty lines in /lib/apk/db/installed.
On my test VM, this takes about 5ms compared to 80ms with the previous method with 82 packages installed.

I left the previous counting method as fallback, in case there are systems that use apk where the new one does not work.

Related to Gobidev/pfetch-rs#48

@grtcdr
Copy link
Member

grtcdr commented Jun 1, 2024

How does the installed file look like? I presume that this method works and it's so odd that it does.

@Gobidev
Copy link
Contributor Author

Gobidev commented Jun 1, 2024

The file contains information about the installed packages, where the individual packages are separated by blank lines.

This is an example from one of my testing VMs:
installed

I have tested this method with various amounts of packages installed and so far it was accurate without the need to correct for off-by-one errors.

@grtcdr
Copy link
Member

grtcdr commented Jun 2, 2024

Great, thanks for the attachment! Let's merge it.

@grtcdr grtcdr merged commit 1dca3fb into Macchina-CLI:main Jun 2, 2024
9 checks passed
@Gobidev Gobidev deleted the alpine_count branch June 2, 2024 13:04
grtcdr added a commit that referenced this pull request Sep 28, 2024
* Fix Armv7 build (#158)

* Add armv7 build target

* Fix mismatched types for pointer width 32

* Use `sh` instead of `python` for `which` assertion

* Replace mach with mach2 (#157)

* feat: add support for RPM `ndb` databases (#159)

* feat: add support for RPM `ndb` databases

* chore: always try sqlite before librpm

* chore: remove `rpm` feature

* fix: librpm call not lazily evaluated

* Add `librpm` dependency note to README (#160)

* Update the changelog

* Bump version to 7.1.0

* Fix i686 build (#162)

closes #161

* Add Sonoma to macos_version_to_name (#163)

* BREAKING CHANGE: Change BatteryReadout::health return value to u8

There's no particular reason why one should allocate 64 bits for a
value that can only be <= 100.

As a bonus, ceil() the return value before finally casting to u8.

* Update BatteryReadout::health function signature

for other operating systems besides Linux.

* Added general detection for wayland compositors (#164)

* Upgrade dependencies to their latest versions

* Update changelog

Make some formatting changes as well.

* Add missing generic argument

sqlite's changed a bit between releases.

* Bump version to 7.2.0

* Add missing second generic argument to sqlite read() call

* Remove unneeded argument to unistd::gethostname function call

* Remove unused variable

* Refactor obsolete find_ifa function

* Bump version to 7.2.1

* Bump vergen version

* Use gitcl feature of vergen

This depends on the git binary, more ubiquituous than the libgit2 bindings, so
it should technically work on every platform we support.

* Refactor the old vergen interface

* Add new entry to the changelog

* Update version to 7.2.2

* Replace flatten() calls with map_while(Result::ok)

* Fix Readouts struct's network field type

Closes: #168

* Improve CI workflow (#169)

* Replace discontinued actions-rs

* Split cargo fmt and clippy into their own CI job

* Faster package count on Alpine Linux (#170)

* Bump version to 7.2.3

* added macos 15 version name (#171)

https://www.apple.com/newsroom/2024/06/macos-sequoia-takes-productivity-and-intelligence-on-mac-to-new-heights/

* Removed panic if local gpu db is not able to be read (#173)

* Add support for the Nix package manager (#172)

Added support for the Nix package manager using Nix' SQLite database.

* Bump version and update changelog

* linux: Safely exit when homebrew is not installed

* Improve linuxbrew keepme safeguard

* Remove unused import

* Bump version to 7.3.1

* Allow disk_space function to accept a path argument (#156)

BREAKING CHANGE: allow disk_space function to accept a path argument
- Bump version and update changelog
- Change disk_space path argument to be of type &Path and check path exists in shared::disk_space
- Add missing import for openwrt

---------

Co-authored-by: Adrian Groh <50576978+Gobidev@users.noreply.github.com>
Co-authored-by: Silas Groh <silas.groh@t-online.de>
Co-authored-by: grtcdr <tahaaziz.benali@esprit.tn>
Co-authored-by: Rex Ng <rex.ky.ng@gmail.com>
Co-authored-by: Absolpega <106615943+Absolpega@users.noreply.github.com>
Co-authored-by: grtcdr <ba.tahaaziz@gmail.com>
Co-authored-by: Matthias Baer <matthiasbaer@bluewin.ch>
Co-authored-by: Rex Ng <timescam@duck.com>
Co-authored-by: coolGi <57488297+coolGi2007@users.noreply.github.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants