
Additions to the documentation: - Page for collecting custom job types, with multi-pass job type. - BAT Pack Error Message solution on Windows. - Clarificationof two-way variable usage in jobs. Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104202
53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
---
|
|
title: Two-way Variables for Multi-Platform Support
|
|
---
|
|
|
|
Two-way variables are there to support mixed-platform Flamenco farms. Basically
|
|
they perform *path prefix replacement*.
|
|
|
|
Let's look at an example configuration:
|
|
|
|
```yaml
|
|
variables:
|
|
my_storage:
|
|
is_twoway: true
|
|
values:
|
|
- platform: linux
|
|
value: /media/shared/flamenco
|
|
- platform: windows
|
|
value: F:\flamenco
|
|
- platform: darwin
|
|
value: /Volumes/shared/flamenco
|
|
```
|
|
|
|
The difference with regular variables is that regular variables are one-way:
|
|
`{variablename}` is replaced with the value, and that's it.
|
|
|
|
Two-way variables go both ways, as follows:
|
|
|
|
- When submitting a **job**, values **in the javascript jobs' command** are replaced
|
|
with the corresponding variables as it's executed on the client.
|
|
- When sending a task to a worker, variables are replaced with values again.
|
|
|
|
*(Do keep in mind that if you perform changes to a job, you'll need to re-submit*
|
|
*it.)*
|
|
|
|
This may seem like a lot of unnecessary work. After all, why go through the
|
|
trouble of replacing in one direction, when later the opposite is done? The
|
|
power lies in the fact that each replacement step can target a different
|
|
platform. In the first step the value for Linux can be recognised, and in the
|
|
second step the value for Windows can be put in its place.
|
|
|
|
Let's look at a more concrete example, based on the configuration shown above.
|
|
|
|
- Alice runs Blender on **macOS**. She submits a job that has its render output set
|
|
to `/Volumes/shared/flamenco/renders/shot_010_a_anim`.
|
|
- Flamenco recognises the path, and stores the job as rendering to
|
|
`{my_storage}/renders/shot_010_a_anim`.
|
|
- Bob's computer is running the Worker on **Windows**, so when it receives a render
|
|
task Flamenco will tell it to render to
|
|
`F:\flamenco\renders\shot_010_a_anim`.
|
|
- Carol's computer is also running a worker, but on **Linux**. When it receives a
|
|
render task, Flamenco will tell it to render to
|
|
`/media/shared/flamenco/renders/shot_010_a_anim`.
|