first attempt - savepoint commit

This commit is contained in:
Patryk Hegenberg 2025-03-31 15:22:34 +02:00
parent b083a8255c
commit 07c0d782af
8 changed files with 700 additions and 43 deletions

61
app.go
View file

@ -13,24 +13,27 @@ import (
)
type App struct {
cfg Config
flags Flags
cfg Config
flags Flags
tracker *SQLiteTimeTracker // Hinzufügen
}
func NewApp() (*App, error) {
func NewApp(tracker *SQLiteTimeTracker) (*App, error) {
cfg, err := loadConfig()
if err != nil {
return nil, fmt.Errorf("error loading config: %w", err)
}
return &App{
cfg: cfg,
cfg: cfg,
tracker: tracker, // Speichern
}, nil
}
func (a *App) connect() {
tw := NewTimeWarrior()
tw.StartWork()
// tw := NewTimeWarrior()
// tw.StartWork()
a.tracker.StartWork()
a.wakeWorkstation()
sshCon, err := a.newSSHConnection()
if err != nil {
@ -119,7 +122,7 @@ func (a *App) startRDPConnection() {
func (a *App) makeChoice() {
var choice string
tw := NewTimeWarrior()
// tw := NewTimeWarrior()
form := huh.NewForm(
huh.NewGroup(
huh.NewSelect[string]().
@ -148,26 +151,44 @@ func (a *App) makeChoice() {
switch choice {
case "start work":
a.connect()
a.connect() // connect nutzt jetzt a.tracker
case "stop work":
tw.StopWork()
a.tracker.StopWork()
case "start break":
tw.StartBreak()
a.tracker.StartBreak()
case "stop break":
tw.StopBreak()
a.tracker.StopBreak()
case "show week summary":
tw.ShowSummary(":week")
a.tracker.ShowSummary(":week")
case "show month summary":
tw.ShowSummary(":month")
case "connect to jump":
a.connectToJump()
case "connect to workstation":
a.connectToWorkstation()
case "start rdp connection":
a.startRDPConnection()
a.tracker.ShowSummary(":month")
case "export":
tw.ExportSummary(a.flags.ExportName)
if err := a.tracker.ExportSummary(a.flags.ExportName); err != nil {
log.Printf("Error exporting summary: %v", err)
}
}
// switch choice {
// case "start work":
// a.connect()
// case "stop work":
// tw.StopWork()
// case "start break":
// tw.StartBreak()
// case "stop break":
// tw.StopBreak()
// case "show week summary":
// tw.ShowSummary(":week")
// case "show month summary":
// tw.ShowSummary(":month")
// case "connect to jump":
// a.connectToJump()
// case "connect to workstation":
// a.connectToWorkstation()
// case "start rdp connection":
// a.startRDPConnection()
// case "export":
// tw.ExportSummary(a.flags.ExportName)
// }
}
func (a *App) getSSHAuth() ssh.AuthMethod {