FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

fix(cli): support sketches with custom main file names by avinxshKD · Pull Request #1329 · processing/processing4 · GitHub

fix(cli): support sketches with custom main file names - #1329

Merged
catilac merged 3 commits into
processing:mainfrom
avinxshKD:fix-cli-main-file
Jan 28, 2026
Merged

fix(cli): support sketches with custom main file names#1329
catilac merged 3 commits into
processing:mainfrom
avinxshKD:fix-cli-main-file

Conversation

avinxshKD commented Nov 18, 2025
edited
Loading

Copy link
Copy Markdown
Contributor

Problem

CLI rejected sketches with custom main file names (e.g., sketch/main.pde) even though the IDE supports them via sketch.properties.

Solution

Updated CLI to check sketch.properties for a main property before falling back to default naming, matching IDE behavior from Sketch.findMain().

Changes

  • Commander.java: Added Settings import and custom main file detection logic
  • CommanderTest.java: Added unit tests for default and custom main file handling

Fixes #1219

Previously, the CLI only accepted sketches where the main .pde file
matched the sketch folder name (e.g., sketch/sketch.pde). This caused
issues when users renamed their main file in the IDE, which stores
the custom filename in sketch.properties.

Now the CLI checks sketch.properties for a 'main' property before
falling back to the default naming convention, matching the IDE's
behavior implemented in Sketch.findMain().

Fixes processing#1219

Copy link
Copy Markdown
Contributor Author

@Stefterv, kindly review this too when you get a chance

Copy link
Copy Markdown
Member

Hi @avinxshKD the code looks great to me, the tests however could use some work. Could you please create a test that tests the actual issue? See https://github.com/processing/processing4/blob/main/app/test/processing/app/CLITest.kt on how to write tests for the Command Line Interface!

Added testSketchWithCustomMainFile() to CLITest.kt as requested by maintainer. This test provides a placeholder for manual testing of sketches with custom main files specified in sketch.properties.

Follows the same pattern as existing CLI tests (testLSP, testLegacyCLI) and is intended to be run manually in IntelliJ IDEA.

Copy link
Copy Markdown
Contributor Author

Hi @avinxshKD the code looks great to me, the tests however could use some work. Could you please create a test that tests the actual issue? See https://github.com/processing/processing4/blob/main/app/test/processing/app/CLITest.kt on how to write tests for the Command Line Interface!

Hi @Stefterv, thank you for the feedback! I've made the following updates:

  1. Added CLI test to CLITest.kt as requested - testSketchWithCustomMainFile() follows the same pattern as existing tests and provides instructions for manual testing in IntelliJ IDEA.

The CLI test is ready for manual verification once you have a chance to test with a sketch that has a custom main file in sketch.properties.

Stefterv commented Dec 3, 2025

Copy link
Copy Markdown
Member

Hi @avinxshKD please see here on how to create a temporary directory and temporary sketch so this does not need to be a manual test. We do not do any manual testing unfortunately

val directory = createTempDirectory("scaffolding")
val sketchbook = directory.resolve("sketchbook")
sketchbook.toFile().mkdirs()
val sketchbookAbs = sketchbook.toAbsolutePath().toString()
System.setProperty("processing.sketchbook.folder", sketchbookAbs)
val result = Base.getSketchbookFolder()
assertEquals(sketchbookAbs, result.absolutePath)

Converted testSketchWithCustomMainFile() from manual to automated test. Now creates a temporary sketch folder with custom main file and sketch.properties, then tests the CLI build command.

Follows the pattern from SchemaTest.kt using Files.createTempDirectory() and automatic cleanup.

Copy link
Copy Markdown
Contributor Author

Hi @Stefterv, thank you for the guidance I've updated the test to be fully automated as requested

Copy link
Copy Markdown
Contributor Author

@Stefterv Hey, pls review and is there anything you think I should add or improve? If yes, I’ll work on it after my exams. Thanks

catilac self-requested a review January 28, 2026 00:42
catilac merged commit fa85cd4 into processing:main Jan 28, 2026

Copy link
Copy Markdown
Collaborator

@all-contributors please add @avinxshKD for code

Copy link
Copy Markdown
Contributor

@SableRaf

I've put up a pull request to add @avinxshKD! 🎉

Copy link
Copy Markdown
Collaborator

@catilac should I open a new issue for the following review item?

#1329 (comment)

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

processing cli does not support sketches with a different main.pde file

4 participants


Back | FazBrowse Home | New Git URL