commit
f2863cc7f8
2 changed files with 19 additions and 13 deletions
|
@ -76,22 +76,10 @@ func saveModel(model *Model, fn func(total, completed int64)) error {
|
||||||
return fmt.Errorf("failed to download model: %w", err)
|
return fmt.Errorf("failed to download model: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if completed file exists
|
|
||||||
fi, err := os.Stat(model.FullName())
|
|
||||||
switch {
|
|
||||||
case errors.Is(err, os.ErrNotExist):
|
|
||||||
// noop, file doesn't exist so create it
|
|
||||||
case err != nil:
|
|
||||||
return fmt.Errorf("stat: %w", err)
|
|
||||||
default:
|
|
||||||
fn(fi.Size(), fi.Size())
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var size int64
|
var size int64
|
||||||
|
|
||||||
// completed file doesn't exist, check partial file
|
// completed file doesn't exist, check partial file
|
||||||
fi, err = os.Stat(model.TempFile())
|
fi, err := os.Stat(model.TempFile())
|
||||||
switch {
|
switch {
|
||||||
case errors.Is(err, os.ErrNotExist):
|
case errors.Is(err, os.ErrNotExist):
|
||||||
// noop, file doesn't exist so create it
|
// noop, file doesn't exist so create it
|
||||||
|
|
|
@ -105,6 +105,24 @@ func pull(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if completed file exists
|
||||||
|
fi, err := os.Stat(remote.FullName())
|
||||||
|
switch {
|
||||||
|
case errors.Is(err, os.ErrNotExist):
|
||||||
|
// noop, file doesn't exist so create it
|
||||||
|
case err != nil:
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||||
|
return
|
||||||
|
default:
|
||||||
|
c.JSON(http.StatusOK, api.PullProgress{
|
||||||
|
Total: fi.Size(),
|
||||||
|
Completed: fi.Size(),
|
||||||
|
Percent: 100,
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ch := make(chan any)
|
ch := make(chan any)
|
||||||
go stream(c, ch)
|
go stream(c, ch)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue