refactor: Decompose tell and eject funcs

This commit is contained in:
Felix Pojtinger
2021-12-06 22:43:37 +01:00
parent 01c75dfa65
commit 4f8a6a12a4
6 changed files with 55 additions and 32 deletions
+5
View File
@@ -0,0 +1,5 @@
package hardware
type DriveConfig struct {
Drive string
}
+19
View File
@@ -0,0 +1,19 @@
package hardware
import (
"os"
"github.com/pojntfx/stfs/internal/controllers"
)
func Eject(
state DriveConfig,
) error {
f, err := os.OpenFile(state.Drive, os.O_RDONLY, os.ModeCharDevice)
if err != nil {
return err
}
defer f.Close()
return controllers.EjectTape(f)
}
-13
View File
@@ -1,13 +0,0 @@
package hardware
type DriveConfig struct {
Drive string
}
func Eject(
state DriveConfig,
) error
func Tell(
state DriveConfig,
) (int, error)
+19
View File
@@ -0,0 +1,19 @@
package hardware
import (
"os"
"github.com/pojntfx/stfs/internal/controllers"
)
func Tell(
state DriveConfig,
) (int64, error) {
f, err := os.OpenFile(state.Drive, os.O_RDONLY, os.ModeCharDevice)
if err != nil {
return -1, err
}
defer f.Close()
return controllers.GetCurrentRecordFromTape(f)
}