/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2018 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2019 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
import (
"errors"
"io/ioutil"
+ "log"
"os"
"path/filepath"
+
+ "golang.org/x/sys/unix"
)
type Ctx struct {
ctx.Debug = debug
return ctx, nil
}
+
+func (ctx *Ctx) IsEnoughSpace(want int64) bool {
+ var s unix.Statfs_t
+ if err := unix.Statfs(ctx.Spool, &s); err != nil {
+ log.Fatalln(err)
+ }
+ return int64(s.Bavail)*int64(s.Bsize) > want
+}