diff --git a/internal/find_blender/find_blender.go b/internal/find_blender/find_blender.go new file mode 100644 index 00000000..fbe790a2 --- /dev/null +++ b/internal/find_blender/find_blender.go @@ -0,0 +1,14 @@ +package find_blender + +// SPDX-License-Identifier: GPL-3.0-or-later + +import "errors" + +var ErrNotAvailable = errors.New("not available on this platform") + +// FindBlender returns the full path of a Blender executable. +// `ErrNotAvailable` is returned if no "blender finder" is available for the current platform. +func FindBlender() (string, error) { + // findBlender() is implemented in one of the platform-dependent files. + return findBlender() +} diff --git a/internal/find_blender/nonwindows.go b/internal/find_blender/nonwindows.go new file mode 100644 index 00000000..2de0d0f3 --- /dev/null +++ b/internal/find_blender/nonwindows.go @@ -0,0 +1,10 @@ +//go:build !windows + +package find_blender + +// SPDX-License-Identifier: GPL-3.0-or-later + +// findBlender returns ErrNotAvailable, as the file association lookup is only available on Windows. +func findBlender() (string, error) { + return "", ErrNotAvailable +} diff --git a/internal/worker/find_blender/windows.go b/internal/find_blender/windows.go similarity index 97% rename from internal/worker/find_blender/windows.go rename to internal/find_blender/windows.go index 8dec3c24..e821d7cb 100644 --- a/internal/worker/find_blender/windows.go +++ b/internal/find_blender/windows.go @@ -1,8 +1,9 @@ //go:build windows -// SPDX-License-Identifier: GPL-3.0-or-later package find_blender +// SPDX-License-Identifier: GPL-3.0-or-later + import ( "errors" "fmt" @@ -13,8 +14,8 @@ import ( "unsafe" ) -// FindBlender returns the full path of `blender.exe` associated with ".blend" files. -func FindBlender() (string, error) { +// findBlender returns the full path of `blender.exe` associated with ".blend" files. +func findBlender() (string, error) { exe, err := fileAssociation(".blend") if err != nil { return "", err diff --git a/internal/worker/find_blender/windows_test.go b/internal/find_blender/windows_test.go similarity index 96% rename from internal/worker/find_blender/windows_test.go rename to internal/find_blender/windows_test.go index c126573f..129de070 100644 --- a/internal/worker/find_blender/windows_test.go +++ b/internal/find_blender/windows_test.go @@ -1,8 +1,9 @@ //go:build windows -// SPDX-License-Identifier: GPL-3.0-or-later package find_blender +// SPDX-License-Identifier: GPL-3.0-or-later + import ( "flag" "testing" @@ -15,7 +16,7 @@ var withBlender = flag.Bool("withBlender", false, "run test that requires Blende // TestFindBlender is a "weak" test, which actually accepts both happy and unhappy flows. // It would be too fragile to always require a file association to be set up with Blender. func TestFindBlender(t *testing.T) { - exe, err := FindBlender() + exe, err := findBlender() if err != nil { assert.Empty(t, exe) diff --git a/internal/worker/command_blender.go b/internal/worker/command_blender.go index 5d31f98a..bd8025f6 100644 --- a/internal/worker/command_blender.go +++ b/internal/worker/command_blender.go @@ -16,7 +16,7 @@ import ( "github.com/google/shlex" "github.com/rs/zerolog" - "git.blender.org/flamenco/internal/worker/find_blender" + "git.blender.org/flamenco/internal/find_blender" "git.blender.org/flamenco/pkg/api" ) diff --git a/internal/worker/find_blender/nonwindows.go b/internal/worker/find_blender/nonwindows.go deleted file mode 100644 index 90957561..00000000 --- a/internal/worker/find_blender/nonwindows.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build !windows - -// SPDX-License-Identifier: GPL-3.0-or-later -package find_blender - -import "errors" - -// FindBlender returns an error, as the file association lookup is only available on Windows. -func FindBlender() (string, error) { - return "", errors.New("file association lookup is only available on Windows") -} diff --git a/web/app/src/views/FirstTimeWizardView.vue b/web/app/src/views/FirstTimeWizardView.vue index 537c28b3..b7d2b1e4 100644 --- a/web/app/src/views/FirstTimeWizardView.vue +++ b/web/app/src/views/FirstTimeWizardView.vue @@ -27,6 +27,10 @@ {{ sharedStorageCheckResult.cause }}

+ +
+

Which Blender?

+