summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Milde <daniel@milde.cz>2024-04-24 16:34:11 +0200
committerGitHub <noreply@github.com>2024-04-24 16:34:11 +0200
commit4cdc89dd143bbb4df0de94560a0fe069ea63f526 (patch)
tree266b670599adb9cb0d38536f5402cd762cea0715
parent2558cf7fc7b50a534cc559c48f947ff8b9367943 (diff)
parent693a37c05c13c3499107cbad3e5d283190c95e85 (diff)
Merge pull request #352 from dundee/dundee/refactor/lint
refactor: lints
-rw-r--r--cmd/gdu/app/app.go46
-rw-r--r--internal/common/ignore_test.go8
-rw-r--r--tui/actions.go14
-rw-r--r--tui/format.go51
-rw-r--r--tui/marked.go1
-rw-r--r--tui/mouse.go4
-rw-r--r--tui/show.go19
-rw-r--r--tui/sort.go48
-rw-r--r--tui/tui.go4
-rw-r--r--tui/tui_test.go4
-rw-r--r--tui/utils.go2
11 files changed, 110 insertions, 91 deletions
diff --git a/cmd/gdu/app/app.go b/cmd/gdu/app/app.go
index 4169077..7f9612c 100644
--- a/cmd/gdu/app/app.go
+++ b/cmd/gdu/app/app.go
@@ -122,14 +122,14 @@ func init() {
}
// Run starts gdu main logic
-func (a *App) Run() (err error) {
+func (a *App) Run() error {
var ui UI
if a.Flags.ShowVersion {
fmt.Fprintln(a.Writer, "Version:\t", build.Version)
fmt.Fprintln(a.Writer, "Built time:\t", build.Time)
fmt.Fprintln(a.Writer, "Built user:\t", build.User)
- return
+ return nil
}
log.Printf("Runtime flags: %+v", *a.Flags)
@@ -139,11 +139,14 @@ func (a *App) Run() (err error) {
}
path := a.getPath()
- path, _ = filepath.Abs(path)
+ path, err := filepath.Abs(path)
+ if err != nil {
+ return err
+ }
ui, err = a.createUI()
if err != nil {
- return
+ return err
}
if a.Flags.UseStorage {
@@ -155,21 +158,21 @@ func (a *App) Run() (err error) {
if a.Flags.FollowSymlinks {
ui.SetFollowSymlinks(true)
}
- if err = a.setNoCross(path); err != nil {
- return
+ if err := a.setNoCross(path); err != nil {
+ return err
}
ui.SetIgnoreDirPaths(a.Flags.IgnoreDirs)
if len(a.Flags.IgnoreDirPatterns) > 0 {
- if err = ui.SetIgnoreDirPatterns(a.Flags.IgnoreDirPatterns); err != nil {
- return
+ if err := ui.SetIgnoreDirPatterns(a.Flags.IgnoreDirPatterns); err != nil {
+ return err
}
}
if a.Flags.IgnoreFromFile != "" {
- if err = ui.SetIgnoreFromFile(a.Flags.IgnoreFromFile); err != nil {
- return
+ if err := ui.SetIgnoreFromFile(a.Flags.IgnoreFromFile); err != nil {
+ return err
}
}
@@ -179,12 +182,11 @@ func (a *App) Run() (err error) {
a.setMaxProcs()
- if err = a.runAction(ui, path); err != nil {
- return
+ if err := a.runAction(ui, path); err != nil {
+ return err
}
- err = ui.StartUILoop()
- return
+ return ui.StartUILoop()
}
func (a *App) getPath() string {
@@ -208,7 +210,8 @@ func (a *App) setMaxProcs() {
func (a *App) createUI() (UI, error) {
var ui UI
- if a.Flags.OutputFile != "" {
+ switch {
+ case a.Flags.OutputFile != "":
var output io.Writer
var err error
if a.Flags.OutputFile == "-" {
@@ -227,7 +230,7 @@ func (a *App) createUI() (UI, error) {
a.Flags.ConstGC,
a.Flags.UseSIPrefix,
)
- } else if a.Flags.NonInteractive || !a.Istty {
+ case a.Flags.NonInteractive || !a.Istty:
ui = stdout.CreateStdoutUI(
a.Writer,
!a.Flags.NoColor && a.Istty,
@@ -239,7 +242,7 @@ func (a *App) createUI() (UI, error) {
a.Flags.UseSIPrefix,
a.Flags.NoPrefix,
)
- } else {
+ default:
var opts []tui.Option
if a.Flags.Style.SelectedRow.TextColor != "" {
@@ -346,11 +349,12 @@ func (a *App) runAction(ui UI, path string) error {
}()
}
- if a.Flags.ShowDisks {
+ switch {
+ case a.Flags.ShowDisks:
if err := ui.ListDevices(a.Getter); err != nil {
return fmt.Errorf("loading mount points: %w", err)
}
- } else if a.Flags.InputFile != "" {
+ case a.Flags.InputFile != "":
var input io.Reader
var err error
if a.Flags.InputFile == "-" {
@@ -365,12 +369,12 @@ func (a *App) runAction(ui UI, path string) error {
if err := ui.ReadAnalysis(input); err != nil {
return fmt.Errorf("reading analysis: %w", err)
}
- } else if a.Flags.ReadFromStorage {
+ case a.Flags.ReadFromStorage:
ui.SetAnalyzer(analyze.CreateStoredAnalyzer(a.Flags.StoragePath))
if err := ui.ReadFromStorage(a.Flags.StoragePath, path); err != nil {
return fmt.Errorf("reading from storage (%s): %w", a.Flags.StoragePath, err)
}
- } else {
+ default:
if build.RootPathPrefix != "" {
path = build.RootPathPrefix + path
}
diff --git a/internal/common/ignore_test.go b/internal/common/ignore_test.go
index 8ac5c6d..f770fea 100644
--- a/internal/common/ignore_test.go
+++ b/internal/common/ignore_test.go
@@ -18,7 +18,7 @@ func TestCreateIgnorePattern(t *testing.T) {
re, err := common.CreateIgnorePattern([]string{"[abc]+"})
assert.Nil(t, err)
- assert.True(t, re.Match([]byte("aa")))
+ assert.True(t, re.MatchString("aa"))
}
func TestCreateIgnorePatternWithErr(t *testing.T) {
@@ -63,13 +63,13 @@ func TestIgnoreFromFile(t *testing.T) {
}
defer file.Close()
- if _, err := file.Write([]byte("/aaa\n")); err != nil {
+ if _, err := file.WriteString("/aaa\n"); err != nil {
panic(err)
}
- if _, err := file.Write([]byte("/aaabc\n")); err != nil {
+ if _, err := file.WriteString("/aaabc\n"); err != nil {
panic(err)
}
- if _, err := file.Write([]byte("/[abd]+\n")); err != nil {
+ if _, err := file.WriteString("/[abd]+\n"); err != nil {
panic(err)
}
diff --git a/tui/actions.go b/tui/actions.go
index 92347e7..d09216b 100644
--- a/tui/actions.go
+++ b/tui/actions.go
@@ -300,14 +300,8 @@ func (ui *UI) showFile() *tview.TextView {
return event
}
- switch {
- case event.Rune() == 'j':
- fallthrough
- case event.Rune() == 'G':
- fallthrough
- case event.Key() == tcell.KeyDown:
- fallthrough
- case event.Key() == tcell.KeyPgDn:
+ if event.Rune() == 'j' || event.Rune() == 'G' ||
+ event.Key() == tcell.KeyDown || event.Key() == tcell.KeyPgDn {
_, _, _, height := file.GetInnerRect()
row, _ := file.GetScrollOffset()
if height+row > totalLines-linesTreshold {
@@ -339,9 +333,9 @@ func (ui *UI) showInfo() {
selectedFile := ui.table.GetCell(row, column).GetReference().(fs.Item)
if ui.UseColors {
- numberColor = "[#e67100::b]"
+ numberColor = orangeBold
} else {
- numberColor = "[::b]"
+ numberColor = defaultColorBold
}
linesCount := 12
diff --git a/tui/format.go b/tui/format.go
index 84ad967..5f48d99 100644
--- a/tui/format.go
+++ b/tui/format.go
@@ -9,23 +9,36 @@ import (
"github.com/rivo/tview"
)
-func (ui *UI) formatFileRow(item fs.Item, maxUsage int64, maxSize int64, marked, ignored bool) string {
+const (
+ blackOnWhite = "[black:white:-]"
+ blackOnBlue = "[#000000:#2479d0:-]"
+ whiteOnBlack = "[white:black:-]"
+
+ orangeBold = "[#e67100::b]"
+ blueBold = "[#3498db::b]"
+
+ defaultColor = "[-::]"
+ defaultColorBold = "[::b]"
+)
+
+func (ui *UI) formatFileRow(item fs.Item, maxUsage, maxSize int64, marked, ignored bool) string {
var part int
- if ignored {
+ switch {
+ case ignored:
part = 0
- } else if ui.ShowApparentSize {
+ case ui.ShowApparentSize:
part = int(float64(item.GetSize()) / float64(maxSize) * 100.0)
- } else {
+ default:
part = int(float64(item.GetUsage()) / float64(maxUsage) * 100.0)
}
row := string(item.GetFlag())
if ui.UseColors && !marked && !ignored {
- row += "[#e67100::b]"
+ row += orangeBold
} else {
- row += "[::b]"
+ row += defaultColorBold
}
if ui.ShowApparentSize {
@@ -42,21 +55,21 @@ func (ui *UI) formatFileRow(item fs.Item, maxUsage int64, maxSize int64, marked,
if ui.showItemCount {
if ui.UseColors && !marked && !ignored {
- row += "[#e67100::b]"
+ row += orangeBold
} else {
- row += "[::b]"
+ row += defaultColorBold
}
row += fmt.Sprintf("%11s ", ui.formatCount(item.GetItemCount()))
}
if ui.showMtime {
if ui.UseColors && !marked && !ignored {
- row += "[#e67100::b]"
+ row += orangeBold
} else {
- row += "[::b]"
+ row += defaultColorBold
}
row += fmt.Sprintf(
- "%s [-::]",
+ "%s "+defaultColor,
item.GetMtime().Format("2006-01-02 15:04:05"),
)
}
@@ -72,28 +85,28 @@ func (ui *UI) formatFileRow(item fs.Item, maxUsage int64, maxSize int64, marked,
if item.IsDir() {
if ui.UseColors && !marked && !ignored {
- row += "[#3498db::b]/"
+ row += blueBold + "/"
} else {
- row += "[::b]/"
+ row += defaultColorBold + "/"
}
}
row += tview.Escape(item.GetName())
return row
}
-func (ui *UI) formatSize(size int64, reverseColor bool, transparentBg bool) string {
+func (ui *UI) formatSize(size int64, reverseColor, transparentBg bool) string {
var color string
if reverseColor {
if ui.UseColors {
- color = "[#000000:#2479d0:-]"
+ color = blackOnBlue
} else {
- color = "[black:white:-]"
+ color = blackOnWhite
}
} else {
if transparentBg {
- color = "[-::]"
+ color = defaultColor
} else {
- color = "[white:black:-]"
+ color = whiteOnBlack
}
}
@@ -105,7 +118,7 @@ func (ui *UI) formatSize(size int64, reverseColor bool, transparentBg bool) stri
func (ui *UI) formatCount(count int) string {
row := ""
- color := "[-::]"
+ color := defaultColor
count64 := float64(count)
switch {
diff --git a/tui/marked.go b/tui/marked.go
index fb5ac91..db9d3e9 100644
--- a/tui/marked.go
+++ b/tui/marked.go
@@ -52,7 +52,6 @@ func (ui *UI) deleteMarked(shouldEmpty bool) {
go func() {
for _, one := range markedItems {
-
ui.app.QueueUpdateDraw(func() {
modal.SetText(
// nolint: staticcheck // Why: fixed string
diff --git a/tui/mouse.go b/tui/mouse.go
index c8aa95c..991c62e 100644
--- a/tui/mouse.go
+++ b/tui/mouse.go
@@ -33,9 +33,7 @@ func (ui *UI) onMouse(event *tcell.EventMouse, action tview.MouseAction) (*tcell
}
}
return nil, action
- case tview.MouseScrollUp:
- fallthrough
- case tview.MouseScrollDown:
+ case tview.MouseScrollUp, tview.MouseScrollDown:
row, column := ui.table.GetSelection()
if action == tview.MouseScrollUp && row > 0 {
row--
diff --git a/tui/show.go b/tui/show.go
index 0beeeff..b8709fd 100644
--- a/tui/show.go
+++ b/tui/show.go
@@ -131,12 +131,13 @@ func (ui *UI) showDir() {
cell := tview.NewTableCell(ui.formatFileRow(item, maxUsage, maxSize, marked, ignored))
cell.SetReference(ui.currentDir.GetFiles()[i])
- if ignored {
+ switch {
+ case ignored:
cell.SetStyle(tcell.Style{}.Foreground(tview.Styles.SecondaryTextColor))
- } else if marked {
+ case marked:
cell.SetStyle(tcell.Style{}.Foreground(tview.Styles.PrimaryTextColor))
cell.SetBackgroundColor(tview.Styles.ContrastBackgroundColor)
- } else {
+ default:
cell.SetStyle(tcell.Style{}.Foreground(tcell.ColorDefault))
}
@@ -147,10 +148,10 @@ func (ui *UI) showDir() {
var footerNumberColor, footerTextColor string
if ui.UseColors {
footerNumberColor = "[#ffffff:#2479d0:b]"
- footerTextColor = "[#000000:#2479d0:-]"
+ footerTextColor = blackOnBlue
} else {
footerNumberColor = "[black:white:b]"
- footerTextColor = "[black:white:-]"
+ footerTextColor = blackOnWhite
}
selected := ""
@@ -214,10 +215,10 @@ func (ui *UI) showDevices() {
var footerNumberColor, footerTextColor string
if ui.UseColors {
footerNumberColor = "[#ffffff:#2479d0:b]"
- footerTextColor = "[#000000:#2479d0:-]"
+ footerTextColor = blackOnBlue
} else {
footerNumberColor = "[black:white:b]"
- footerTextColor = "[black:white:-]"
+ footerTextColor = blackOnWhite
}
ui.footerLabel.SetText(
@@ -297,8 +298,8 @@ func (ui *UI) formatHelpTextFor() string {
for i, line := range lines {
if ui.UseColors {
lines[i] = strings.ReplaceAll(
- strings.ReplaceAll(line, "[::b]", "[red]"),
- "[white:black:-]",
+ strings.ReplaceAll(line, defaultColorBold, "[red]"),
+ whiteOnBlack,
"[white]",
)
}
diff --git a/tui/sort.go b/tui/sort.go
index 2e2af32..049b79a 100644
--- a/tui/sort.go
+++ b/tui/sort.go
@@ -7,67 +7,77 @@ import (
"github.com/dundee/gdu/v5/pkg/fs"
)
+const (
+ nameSortKey = "name"
+ sizeSortKey = "size"
+ itemCountSortKey = "itemCount"
+ mtimeSortKey = "mtime"
+
+ ascOrder = "asc"
+ descOrder = "desc"
+)
+
// SetDefaultSorting sets the default sorting
func (ui *UI) SetDefaultSorting(by, order string) {
if by != "" {
ui.defaultSortBy = by
}
- if order == "asc" || order == "desc" {
+ if order == ascOrder || order == descOrder {
ui.defaultSortOrder = order
}
}
func (ui *UI) setSorting(newOrder string) {
if newOrder == ui.sortBy {
- if ui.sortOrder == "asc" {
- ui.sortOrder = "desc"
+ if ui.sortOrder == ascOrder {
+ ui.sortOrder = descOrder
} else {
- ui.sortOrder = "asc"
+ ui.sortOrder = ascOrder
}
} else {
ui.sortBy = newOrder
- ui.sortOrder = "asc"
+ ui.sortOrder = ascOrder
}
if ui.currentDir != nil {
ui.showDir()
- } else if ui.devices != nil && (newOrder == "size" || newOrder == "name") {
+ } else if ui.devices != nil && (newOrder == sizeSortKey || newOrder == nameSortKey) {
ui.showDevices()
}
}
func (ui *UI) sortItems() {
- if ui.sortBy == "size" {
+ if ui.sortBy == sizeSortKey {
if ui.ShowApparentSize {
- if ui.sortOrder == "desc" {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(fs.ByApparentSize(ui.currentDir.GetFiles())))
} else {
sort.Sort(fs.ByApparentSize(ui.currentDir.GetFiles()))
}
} else {
- if ui.sortOrder == "desc" {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(ui.currentDir.GetFiles()))
} else {
sort.Sort(ui.currentDir.GetFiles())
}
}
}
- if ui.sortBy == "itemCount" {
- if ui.sortOrder == "desc" {
+ if ui.sortBy == itemCountSortKey {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(fs.ByItemCount(ui.currentDir.GetFiles())))
} else {
sort.Sort(fs.ByItemCount(ui.currentDir.GetFiles()))
}
}
- if ui.sortBy == "name" {
- if ui.sortOrder == "desc" {
+ if ui.sortBy == nameSortKey {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(fs.ByName(ui.currentDir.GetFiles())))
} else {
sort.Sort(fs.ByName(ui.currentDir.GetFiles()))
}
}
- if ui.sortBy == "mtime" {
- if ui.sortOrder == "desc" {
+ if ui.sortBy == mtimeSortKey {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(fs.ByMtime(ui.currentDir.GetFiles())))
} else {
sort.Sort(fs.ByMtime(ui.currentDir.GetFiles()))
@@ -76,15 +86,15 @@ func (ui *UI) sortItems() {
}
func (ui *UI) sortDevices() {
- if ui.sortBy == "size" {
- if ui.sortOrder == "desc" {
+ if ui.sortBy == sizeSortKey {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(device.ByUsedSize(ui.devices)))
} else {
sort.Sort(device.ByUsedSize(ui.devices))
}
}
- if ui.sortBy == "name" {
- if ui.sortOrder == "desc" {
+ if ui.sortBy == nameSortKey {
+ if ui.sortOrder == descOrder {
sort.Sort(sort.Reverse(device.ByName(ui.devices)))
} else {
sort.Sort(device.ByName(ui.devices))
diff --git a/tui/tui.go b/tui/tui.go
index c895d3e..23d0599 100644
--- a/tui/tui.go
+++ b/tui/tui.go
@@ -207,8 +207,8 @@ func (ui *UI) SetSelectedBackgroundColor(color tcell.Color) {
// SetCurrentItemNameMaxLen sets the maximum length of the path of the currently processed item
// to be shown in the progress modal
-func (ui *UI) SetCurrentItemNameMaxLen(len int) {
- ui.currentItemNameMaxLen = len
+func (ui *UI) SetCurrentItemNameMaxLen(maxLen int) {
+ ui.currentItemNameMaxLen = maxLen
}
// UseOldSizeBar uses the old size bar (# chars) instead of the new one (unicode block elements)
diff --git a/tui/tui_test.go b/tui/tui_test.go
index 0e80d7a..33a600d 100644
--- a/tui/tui_test.go
+++ b/tui/tui_test.go
@@ -192,7 +192,7 @@ func TestDirSelected(t *testing.T) {
fin := testdir.CreateTestDir()
defer fin()
- ui := getAnalyzedPathMockedApp(t, true, true, false)
+ ui := getAnalyzedPathMockedApp(t, true, false, false)
ui.done = make(chan struct{})
ui.fileItemSelected(0, 0)
@@ -814,7 +814,7 @@ func getDevicesInfoMock() device.DevicesInfoGetter {
return mock
}
-func getAnalyzedPathMockedApp(t *testing.T, useColors, apparentSize bool, mockedAnalyzer bool) *UI {
+func getAnalyzedPathMockedApp(t *testing.T, useColors, apparentSize, mockedAnalyzer bool) *UI {
simScreen := testapp.CreateSimScreen()
defer simScreen.Fini()
diff --git a/tui/utils.go b/tui/utils.go
index 351f679..6403dbd 100644
--- a/tui/utils.go
+++ b/tui/utils.go
@@ -47,7 +47,7 @@ func getUsageGraph(part int) string {
}
func getUsageGraphOld(part int) string {
- part = part / 10
+ part /= 10
graph := "["
for i := 0; i < 10; i++ {
if part > i {