|
1 | 1 | let path = require('path'); |
2 | | -let fs = require('fs'); |
| 2 | +let fs = require('fs-extra'); |
3 | 3 | let yaml = require('js-yaml'); |
4 | 4 | let env = process.env; |
5 | 5 |
|
@@ -54,12 +54,13 @@ let config = module.exports = { |
54 | 54 |
|
55 | 55 | projectRoot: process.cwd(), |
56 | 56 | // public files, served by nginx |
57 | | - publicRoot: path.join(process.cwd(), 'public'), |
| 57 | + publicRoot: path.join(process.cwd(), 'public', lang), |
58 | 58 | // private files, for expiring links, not directly accessible |
59 | 59 | tutorialRoot: env.TUTORIAL_ROOT || path.join(process.cwd(), '..', 'javascript-tutorial-' + lang), |
60 | | - tmpRoot: path.join(process.cwd(), 'tmp'), |
| 60 | + tmpRoot: path.join(process.cwd(), 'tmp', lang), |
61 | 61 | // js/css build versions |
62 | | - cacheRoot: path.join(process.cwd(), 'cache'), |
| 62 | + cacheRoot: path.join(process.cwd(), 'cache', lang), |
| 63 | + assetsRoot: path.join(process.cwd(), 'assets'), |
63 | 64 |
|
64 | 65 | handlers: require('./handlers') |
65 | 66 | }; |
@@ -89,3 +90,17 @@ t.requireHandlerLocales(); |
89 | 90 | // we have a loop dep here |
90 | 91 | config.webpack = require('./webpack'); |
91 | 92 |
|
| 93 | + |
| 94 | +createRoot(config.publicRoot); |
| 95 | +createRoot(config.cacheRoot); |
| 96 | +createRoot(config.tmpRoot); |
| 97 | + |
| 98 | +function createRoot(root) { |
| 99 | + // may be existing symlink |
| 100 | + if (fs.existsSync(root) && fs.statSync(root).isFile()) { |
| 101 | + fs.unlinkSync(root); |
| 102 | + } |
| 103 | + if (!fs.existsSync(root)) { |
| 104 | + fs.ensureDirSync(root); |
| 105 | + } |
| 106 | +} |
0 commit comments