
Create a dedicated package `.../pkg/website` to contain constants for the URLs of documentation, bug reporting, etc. That way it's easier to see which parts of the website are being referred to from the Flamenco binaries, and updates can happen in a central spot. No functional changes.
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"io/fs"
|
|
"os/exec"
|
|
"time"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
|
|
"projects.blender.org/studio/flamenco/internal/find_blender"
|
|
"projects.blender.org/studio/flamenco/internal/find_ffmpeg"
|
|
"projects.blender.org/studio/flamenco/pkg/website"
|
|
)
|
|
|
|
// findFFmpeg tries to find FFmpeg, in order to show its version (if found) or a warning (if not).
|
|
func findFFmpeg() {
|
|
result, err := find_ffmpeg.Find()
|
|
switch {
|
|
case errors.Is(err, fs.ErrNotExist):
|
|
log.Warn().Msg("FFmpeg could not be found on this system, render jobs may not run correctly")
|
|
case err != nil:
|
|
log.Warn().Err(err).Msg("there was an unexpected error finding FFmpeg on this system, render jobs may not run correctly")
|
|
default:
|
|
log.Info().Str("path", result.Path).Str("version", result.Version).Msg("FFmpeg found on this system")
|
|
}
|
|
}
|
|
|
|
// findBlender tries to find Blender, in order to show its version (if found) or a message (if not).
|
|
func findBlender() {
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
helpMsg := "Flamenco Manager will have to supply the full path to Blender when tasks are sent " +
|
|
"to this Worker. For more info see " + website.DocVariablesURL
|
|
|
|
result, err := find_blender.Find(ctx)
|
|
switch {
|
|
case errors.Is(err, fs.ErrNotExist), errors.Is(err, exec.ErrNotFound):
|
|
log.Warn().Msg("Blender could not be found. " + helpMsg)
|
|
case err != nil:
|
|
log.Warn().AnErr("cause", err).Msg("There was an error finding Blender on this system. " + helpMsg)
|
|
default:
|
|
log.Info().
|
|
Str("path", result.FoundLocation).
|
|
Str("version", result.BlenderVersion).
|
|
Msg("Blender found on this system, it will be used unless the Flamenco Manager configuration specifies a different path.")
|
|
}
|
|
}
|