Skip to content

Commit

Permalink
Fixed syncscreen loadbar
Browse files Browse the repository at this point in the history
Added new repository count file history
Removed hard code for bash history
  • Loading branch information
grrlopes committed Jul 13, 2023
1 parent 893ac4d commit ec9e7a8
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 7 deletions.
2 changes: 1 addition & 1 deletion repositories/fileparse/fconnector.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
)

func OpenHist() (*os.File, error) {
data, err := os.Open("/tmp/history")
data, err := os.Open("~/.bash_history")
if err != nil {
log.Fatal("could not load file:", err)
os.Exit(1)
Expand Down
14 changes: 9 additions & 5 deletions ui/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,17 @@ import (
"github.com/grrlopes/storydb/repositories/sqlite"
"github.com/grrlopes/storydb/usecase/count"
"github.com/grrlopes/storydb/usecase/fhistory"
"github.com/grrlopes/storydb/usecase/fhistorytotal"
"github.com/grrlopes/storydb/usecase/pager"
)

var (
repository repositories.ISqliteRepository = sqlite.NewSQLiteRepository()
frepository repositories.IFileParsedRepository = fileparse.NewFparsedRepository()
usecasePager pager.InputBoundary = pager.NewPager(repository)
usecaseCount count.InputBoundary = count.NewCount(repository)
usecaseHistory fhistory.InputBoundary = fhistory.NewFHistory(frepository, repository)
repository repositories.ISqliteRepository = sqlite.NewSQLiteRepository()
frepository repositories.IFileParsedRepository = fileparse.NewFparsedRepository()
usecasePager pager.InputBoundary = pager.NewPager(repository)
usecaseCount count.InputBoundary = count.NewCount(repository)
usecaseHistory fhistory.InputBoundary = fhistory.NewFHistory(frepository, repository)
usecaseHistoryTotal fhistorytotal.InputBoundary = fhistorytotal.NewFHistoryTotal(frepository, repository)
)

type ModelHome struct {
Expand All @@ -32,6 +34,7 @@ type ModelHome struct {

func NewHome(m *entity.Command) *ModelHome {
count := usecaseCount.Execute()
ftotal := usecaseHistoryTotal.Execute()
p := paginator.New()
p.PerPage = 18
p.SetTotalPages(count)
Expand All @@ -48,6 +51,7 @@ func NewHome(m *entity.Command) *ModelHome {
ActiveSyncScreen: false,
StatusSyncScreen: false,
ProgressSync: pro,
Ftotal: ftotal,
},
}
return &home
Expand Down
2 changes: 1 addition & 1 deletion ui/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func syncUpdate(msg tea.Msg, m ModelHome) (*ModelHome, tea.Cmd) {
if m.home.ProgressSync.Percent() == 1.0 {
return &m, nil
}
Percentage := (float64(m.home.Fcount) / float64(111)) * 100
Percentage := (float64(m.home.Fcount) / float64(m.home.Ftotal)) * 100
cmd := m.home.ProgressSync.SetPercent(float64(Percentage) / float64(100))
return &m, tea.Batch(syncTickCmd(), cmd)
case progress.FrameMsg:
Expand Down
57 changes: 57 additions & 0 deletions usecase/fhistorytotal/fhistorytotal.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package fhistorytotal

import (
"log"
"os"

"github.com/grrlopes/storydb/repositories"
)

type InputBoundary interface {
Execute() int
}

type execute struct {
frepository repositories.IFileParsedRepository
srepository repositories.ISqliteRepository
}

func NewFHistoryTotal(frepo repositories.IFileParsedRepository, srepo repositories.ISqliteRepository) InputBoundary {
return execute{
frepository: frepo,
srepository: srepo,
}
}

func (e execute) Execute() int {
file, err := os.Open("~/.bash_history")
if err != nil {
log.Println("Error to open file:", err)
}

defer file.Close()

fcount := 0
prevByte := make([]byte, 1)
b := make([]byte, 1)

for {
_, err := file.Read(b)

if err != nil {
log.Println("Error to open file:", err)
}

if b[0] == '\n' && prevByte[0] != '\r' {
fcount++
}

if err == nil {
prevByte[0] = b[0]
} else {
break
}
}

return fcount
}

0 comments on commit ec9e7a8

Please sign in to comment.