mirror of
https://github.com/Jguer/yay.git
synced 2025-10-05 00:08:30 -04:00
feat(stats): add statistics about pacman and yay cache sizes (#1679)
This commit is contained in:
parent
2a3ddafce5
commit
9c2d4ec0d1
6
print.go
6
print.go
@ -84,6 +84,12 @@ func localStatistics(ctx context.Context, dbExecutor db.Executor) error {
|
||||
text.Infoln(gotext.Get("Foreign installed packages: %s", text.Cyan(strconv.Itoa(len(remoteNames)))))
|
||||
text.Infoln(gotext.Get("Explicitly installed packages: %s", text.Cyan(strconv.Itoa(info.Expln))))
|
||||
text.Infoln(gotext.Get("Total Size occupied by packages: %s", text.Cyan(text.Human(info.TotalSize))))
|
||||
|
||||
for path, size := range info.pacmanCaches {
|
||||
text.Infoln(gotext.Get("Size of pacman cache %s: %s", path, text.Cyan(text.Human(size))))
|
||||
}
|
||||
|
||||
text.Infoln(gotext.Get("Size of yay cache %s: %s", config.BuildDir, text.Cyan(text.Human(info.yayCache))))
|
||||
fmt.Println(text.Bold(text.Cyan("===========================================")))
|
||||
text.Infoln(gotext.Get("Ten biggest packages:"))
|
||||
biggestPackages(dbExecutor)
|
||||
|
53
query.go
53
query.go
@ -3,7 +3,9 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
aur "github.com/Jguer/aur"
|
||||
alpm "github.com/Jguer/go-alpm/v2"
|
||||
@ -190,36 +192,39 @@ func hangingPackages(removeOptional bool, dbExecutor db.Executor) (hanging []str
|
||||
return hanging
|
||||
}
|
||||
|
||||
func getFolderSize(path string) (size int64) {
|
||||
_ = filepath.WalkDir(path, func(p string, entry fs.DirEntry, err error) error {
|
||||
info, _ := entry.Info()
|
||||
size += info.Size()
|
||||
return nil
|
||||
})
|
||||
|
||||
return size
|
||||
}
|
||||
|
||||
// Statistics returns statistics about packages installed in system.
|
||||
func statistics(dbExecutor db.Executor) *struct {
|
||||
Totaln int
|
||||
Expln int
|
||||
TotalSize int64
|
||||
} {
|
||||
var (
|
||||
totalSize int64
|
||||
|
||||
localPackages = dbExecutor.LocalPackages()
|
||||
totalInstalls = 0
|
||||
explicitInstalls = 0
|
||||
)
|
||||
|
||||
for _, pkg := range localPackages {
|
||||
totalSize += pkg.ISize()
|
||||
totalInstalls++
|
||||
func statistics(dbExecutor db.Executor) (res struct {
|
||||
Totaln int
|
||||
Expln int
|
||||
TotalSize int64
|
||||
pacmanCaches map[string]int64
|
||||
yayCache int64
|
||||
}) {
|
||||
for _, pkg := range dbExecutor.LocalPackages() {
|
||||
res.TotalSize += pkg.ISize()
|
||||
res.Totaln++
|
||||
|
||||
if pkg.Reason() == alpm.PkgReasonExplicit {
|
||||
explicitInstalls++
|
||||
res.Expln++
|
||||
}
|
||||
}
|
||||
|
||||
info := &struct {
|
||||
Totaln int
|
||||
Expln int
|
||||
TotalSize int64
|
||||
}{
|
||||
totalInstalls, explicitInstalls, totalSize,
|
||||
res.pacmanCaches = make(map[string]int64)
|
||||
for _, path := range config.Runtime.PacmanConf.CacheDir {
|
||||
res.pacmanCaches[path] = getFolderSize(path)
|
||||
}
|
||||
|
||||
return info
|
||||
res.yayCache = getFolderSize(config.BuildDir)
|
||||
|
||||
return
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user