chore: create images folder when starting the application (#437)

This commit is contained in:
Aveline 2025-05-13 21:13:21 +02:00 committed by GitHub
parent 63c2272c45
commit 38252de03c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 6 deletions

View File

@ -77,11 +77,14 @@ func Main() {
initUsbGadget() initUsbGadget()
err = setInitialVirtualMediaState() if err := setInitialVirtualMediaState(); err != nil {
if err != nil {
logger.Warn().Err(err).Msg("failed to set initial virtual media state") logger.Warn().Err(err).Msg("failed to set initial virtual media state")
} }
if err := initImagesFolder(); err != nil {
logger.Warn().Err(err).Msg("failed to init images folder")
}
go func() { go func() {
time.Sleep(15 * time.Minute) time.Sleep(15 * time.Minute)
for { for {

View File

@ -94,9 +94,20 @@ var nbdDevice *NBDDevice
const imagesFolder = "/userdata/jetkvm/images" const imagesFolder = "/userdata/jetkvm/images"
func initImagesFolder() error {
err := os.MkdirAll(imagesFolder, 0755)
if err != nil {
return fmt.Errorf("failed to create images folder: %w", err)
}
return nil
}
func rpcMountBuiltInImage(filename string) error { func rpcMountBuiltInImage(filename string) error {
logger.Info().Str("filename", filename).Msg("Mount Built-In Image") logger.Info().Str("filename", filename).Msg("Mount Built-In Image")
_ = os.MkdirAll(imagesFolder, 0755) if err := initImagesFolder(); err != nil {
return err
}
imagePath := filepath.Join(imagesFolder, filename) imagePath := filepath.Join(imagesFolder, filename)
// Check if the file exists in the imagesFolder // Check if the file exists in the imagesFolder
@ -224,13 +235,14 @@ func getInitialVirtualMediaState() (*VirtualMediaState, error) {
} }
// TODO: check if it's WebRTC or HTTP // TODO: check if it's WebRTC or HTTP
if diskPath == "" { switch diskPath {
case "":
return nil, nil return nil, nil
} else if diskPath == "/dev/nbd0" { case "/dev/nbd0":
initialState.Source = HTTP initialState.Source = HTTP
initialState.URL = "/" initialState.URL = "/"
initialState.Size = 1 initialState.Size = 1
} else { default:
initialState.Filename = filepath.Base(diskPath) initialState.Filename = filepath.Base(diskPath)
// get size from file // get size from file
logger.Info().Str("diskPath", diskPath).Msg("getting file size") logger.Info().Str("diskPath", diskPath).Msg("getting file size")