@@ -73,10 +73,21 @@ export const payloadValidator = function payloadValidator(req, res, next) {
7373 next ( ) ;
7474} ;
7575
76- const execBuilder = async function execBuilder ( { board, sketch, buildDir } ) {
76+ const execBuilder = async function execBuilder ( {
77+ board,
78+ projectId,
79+ sketch,
80+ buildDir,
81+ } ) {
7782 // const tmpSketchPath = await tempWrite(sketch);
78- const sketchDir = `${ temporaryDirectory ( ) } /sketch` ;
79- mkdirSync ( sketchDir ) ;
83+
84+ const sketchDir = projectId
85+ ? `/tmp/${ projectId } /sketch`
86+ : `${ temporaryDirectory ( ) } /sketch` ;
87+
88+ mkdirSync ( sketchDir , {
89+ recursive : true ,
90+ } ) ;
8091
8192 const tmpSketchPath = `${ sketchDir } /sketch.ino` ;
8293 writeFileSync ( tmpSketchPath , sketch ) ;
@@ -108,8 +119,17 @@ export const compileHandler = async function compileHandler(req, res, next) {
108119 ) ;
109120 }
110121
111- const buildDir = temporaryDirectory ( ) ;
112- req . _builderParams = { buildDir, ...req . _builderParams } ;
122+ // create temporary directory for build
123+ // if projectId is provided, use it as part of the directory name
124+ let buildDir = req . body . projectId
125+ ? `/tmp/${ req . body . projectId } `
126+ : temporaryDirectory ( ) ;
127+
128+ req . _builderParams = {
129+ buildDir,
130+ projectId : req . body . projectId ,
131+ ...req . _builderParams ,
132+ } ;
113133
114134 // execute builder with parameters from user
115135 try {
@@ -127,7 +147,7 @@ export const compileHandler = async function compileHandler(req, res, next) {
127147 ) ;
128148 } catch ( err ) {
129149 if ( process . env . NODE_ENV === "test" ) {
130- console . error ( err . message )
150+ console . error ( err . message ) ;
131151 }
132152 return next ( new HTTPError ( { error : err . message } ) ) ;
133153 }
0 commit comments