mirror of
https://github.com/ION606/browser-chromium.git
synced 2026-05-14 22:26:56 +00:00
initial commit/backup
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import { join } from 'path';
|
||||
import fs from 'fs';
|
||||
import { exec } from 'child_process';
|
||||
import loggermod from '../utils/logger.cjs';
|
||||
const { logger } = loggermod;
|
||||
|
||||
|
||||
// was import.meta.dirname but was changed to better suit the app
|
||||
export const __dirname = process.cwd();
|
||||
|
||||
|
||||
/**
|
||||
* returns the full path and performs cursory validation
|
||||
* @returns {Promise<String>} the full pth
|
||||
* @param {String} fname
|
||||
*/
|
||||
export const findPath = (fname, absolute = false) => {
|
||||
try {
|
||||
return new Promise((resolve, reject) => {
|
||||
// use the find command to search for the file
|
||||
exec(`find -type f -name "${fname}"`, (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
return reject(`Error: ${stderr || error.message}`)
|
||||
}
|
||||
|
||||
// clean up the output and resolve with the first result, or null if not found
|
||||
const relativePath = stdout.trim().split('\n').filter(Boolean)[0] || null;
|
||||
|
||||
if (!relativePath) return;
|
||||
|
||||
const p = (absolute) ? join(__dirname, relativePath) : relativePath;
|
||||
resolve(p);
|
||||
});
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
return logger.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* returns the full path and performs cursory validation
|
||||
* @returns {String} the full pth
|
||||
* @param {String} fname
|
||||
*/
|
||||
const findPathOld = (fname, absolute = false) => {
|
||||
try {
|
||||
const ext = fname.match(/[^.]+$/)?.at(0);
|
||||
const base = (absolute) ? __dirname : '';
|
||||
|
||||
switch (ext) {
|
||||
case 'mhtml':
|
||||
case 'html': {
|
||||
let p = join(base, 'HTML', fname);
|
||||
if (!fs.existsSync(p)) p = join(base, 'cache', 'tabCache', fname);
|
||||
return p;
|
||||
}
|
||||
|
||||
case 'scss':
|
||||
case 'css': return join(base, 'CSS', fname);
|
||||
|
||||
case 'cjs':
|
||||
case 'js': {
|
||||
let p = join(base, 'JS', fname);
|
||||
if (!fs.existsSync(p)) p = join(base, 'serverJS', fname);
|
||||
if (!fs.existsSync(p)) p = join(base, 'utils', fname);
|
||||
if (!fs.existsSync(p)) p = join(base, 'organization', fname);
|
||||
if (fs.existsSync(p)) return p;
|
||||
}
|
||||
break;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
return logger.error(err);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user