const path = require('path'); const fs = require('fs'); const frappe_path = process.cwd(); const bench_path = path.resolve(frappe_path, '..', '..'); const sites_path = path.resolve(bench_path, 'sites'); const apps_list = fs.readFileSync( path.resolve(sites_path, 'apps.txt'), { encoding: 'utf-8' } ).split('\n').filter(Boolean); const assets_path = path.resolve(sites_path, 'assets'); const app_paths = apps_list.reduce((out, app) => { out[app] = path.resolve(bench_path, 'apps', app, app) return out; }, {}); const public_paths = apps_list.reduce((out, app) => { out[app] = path.resolve(app_paths[app], 'public'); return out; }, {}); const public_js_paths = apps_list.reduce((out, app) => { out[app] = path.resolve(app_paths[app], 'public/js'); return out; }, {}); const bundle_map = apps_list.reduce((out, app) => { const public_js_path = public_js_paths[app]; if ( fs.existsSync(public_js_path) ) { const all_files = fs.readdirSync(public_js_path); const js_files = all_files.filter(file => file.endsWith('.js')); for (let js_file of js_files) { const filename = path.basename(js_file).split('.')[0]; out[path.join(app, 'js', filename)] = path.resolve(public_js_path, js_file); } } return out; }, {}); const get_public_path = app => public_paths[app]; const get_build_json_path = app => path.resolve(get_public_path(app), 'build.json'); const get_app_path = app => app_paths[app]; module.exports = { sites_path, bundle_map, get_public_path, get_build_json_path, get_app_path, apps_list, assets_path, bench_path };