Skip to content

Commit ac5310c

Browse files
Harsh Bajpaibajpai244
authored andcommitted
fix(config-parser): make output directory if it doesn't exist
1 parent 28c5b41 commit ac5310c

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/circuit.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const {wasm: wasmTester} = require("./vendors/circom_tester")
66
import {CircuitConfig, Networks, Witness, ZK_PROOF} from "./types";
77
import {genGrothZKey, genPlonkZKey, genVerificationKey} from "./utils/zKey";
88
import {genGroth16Proof, genPlonkProof, verifyGroth16Proof, verifyPlonkProof} from "./utils/proof";
9+
import * as fs from "fs";
910

1011
export class Circuit {
1112
private _circuitConfig: CircuitConfig;
@@ -22,6 +23,10 @@ export class Circuit {
2223
async compile() {
2324
log.info('compiling circuit:%s, out1:%s', this._circuitConfig.inputFilePath, this._circuitConfig.outputDir)
2425

26+
if(!fs.existsSync(this._circuitConfig.outputDir)) {
27+
fs.mkdirSync(this._circuitConfig.outputDir, {recursive:true})
28+
}
29+
2530
this._wasmTester = await wasmTester(this._circuitConfig.inputFilePath, {
2631
output: this._circuitConfig.outputDir,
2732
...this._circuitConfig.compileOptions

src/configParser.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,19 @@ export class ConfigParser {
5757

5858
// Check if ouput directory path is valid
5959
const outputDirectory = path.resolve(parsedConfig.outputDir);
60-
try {
61-
fs.accessSync(outputDirectory, fs.constants.W_OK);
62-
} catch (err) {
63-
throw new Error(
64-
`Output directory is not writable. Please check outputDir in config json, filepath:${this._fp}`
65-
);
66-
}
60+
if(!fs.existsSync(outputDirectory)){
61+
fs.mkdirSync(outputDirectory, {recursive:true})
62+
}
63+
else {
64+
try {
65+
fs.accessSync(outputDirectory, fs.constants.W_OK);
66+
}
67+
catch (err) {
68+
throw new Error(
69+
`Output directory is not writable. Please check outputDir in config json, filepath:${this._fp}`
70+
);
71+
}
72+
}
6773

6874
return Object.assign({}, parsedConfig);
6975
} catch (err) {

0 commit comments

Comments
 (0)