package hostfiles import ( "context" "os" ) // Seed stages the stopped host's wake state and descriptor-opened files tree. // The caller owns the descriptor, origin proof and single manifest commit. func Seed(ctx context.Context, p *Publisher, root *os.File, wake WakeState, skip func(string, bool) bool) (SyncStats, error) { if ctx == nil || p == nil || root == nil { return SyncStats{}, os.ErrInvalid } if err := ctx.Err(); err != nil { return SyncStats{}, err } if err := StageWake(ctx, p, wake); err != nil { return SyncStats{}, err } stats, err := SyncDirAt(ctx, p, root, skip) if err != nil { return stats, err } if len(stats.Unreadable) != 0 || len(stats.Retry) != 0 || len(stats.Torn) != 0 { return stats, os.ErrInvalid } return stats, nil }