My goal is: [describe your goal]
To be able to conditionally select in the yml file which files to include from the fs directory
My actions are: [describe your actions - code, commands, etc]
The result I see is: [show the result - log, etc]
If I have fileA. fileB and fileC in the fs directory I would like to be able to select which of these to compile into the esps32 directory.
My expectation & question is: [describe your expectation and your question]
Select in yml file to conditionally add a subset of possible files from the fs directory into the product file system
You can use
build_vars to select the files to included in the filesystem:
filesystem: - fs/common0 build_vars: FILES: 0 conds: - when: build_vars.FILES == "0" apply: filesystem: - fs/f00 - fs/f01 - when: build_vars.FILES == "1" apply: filesystem: - fs/f10 - fs/f11
Build with the option e.g.
mos ls ca.pem common0 conf0.json f10 f11
where should the files be located in my APP structure? I tried putting them in src and the root, but they didn’t show up after the build (mos ls)
That’s what you were asking for.
What I see happening is that every file I put in the fs directory ends up in the product fs directory. It doesn’t matter what I set the conditions too. Therefor I assumed the conditional files needed to go somewhere else for the build process.
Did you add
--build-var FILES=1 to the build command?
No, I added it to the other build_vars in the mos.yml file
Did you keep the top level
filesystem: - fs
Remove it, otherwise it will add all the files in the
fs directory regardless the selection made by the
No luck with any of your suggestions. It seems I either get everything in the fs directory or nothing.
Updated to 2.14 - no difference.
Is there a “don’t include” option to remove from fs directory on build?
I’m not sure what you are doing wrong.
Here is an example which uses the idea I presented earlier.
definitely something strange going on. I downloaded your example from git. Built it and flashed it. ran “mos ls” and got back:
Build was done thru the mos build command in the GUI (2.14.0)
Yes, I tested too on Windows and it does not work.
I usually build on Debian where it works.
I found a workaround that works on Windows:
filesystem: - fs\dummy - fs/common0
Wow good find and thanks for posting the example in GIT.
Big help for the next person that needs this.