Skip to content

Commit

Permalink
Merge branch 'main' of github.com:deep-foundation/deeplinks
Browse files Browse the repository at this point in the history
  • Loading branch information
FreePhoenix888 committed Jul 21, 2023
2 parents 6a76dd2 + 178919f commit 8d3b6a2
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 38 deletions.
2 changes: 1 addition & 1 deletion call.cjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env node

const { call } = require('./imports/engine.cjs');
const { call } = require('./imports/engine-server.cjs');

const DEEPLINKS_CALL_OPTIONS = process.env.DEEPLINKS_CALL_OPTIONS || '{ "operation": "run" }';

Expand Down
55 changes: 45 additions & 10 deletions imports/engine.cjs → imports/engine-server.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ const NEXT_PUBLIC_DEEPLINKS_SERVER = process.env.NEXT_PUBLIC_DEEPLINKS_SERVER ||
// isDeeplinksDocker: 0 | 1 | undefined;
// isDeepcaseDocker: 0 | 1 | undefined;
// envs: any;
// needNPX: boolean;
// }
// interface IGenerateEnvsOptions {
// isDeeplinksDocker: 0 | 1 | undefined;
Expand Down Expand Up @@ -194,7 +195,6 @@ const _generateAndFillEnvs = ({ envs, isDeeplinksDocker }) => {

let userAddedtoDockerGroup = false;
let userAddingToDockerGroupInProcess = false;
let pathNvmFixed = false;
let user;
let homeDir;
let needNPX = false;
Expand Down Expand Up @@ -314,24 +314,54 @@ const _AddUserToDocker = async (envs, user) => {
const _AddNvmDirToPathEnv = async (envs) => {
const whoami = await execP('whoami');
const home = await execP('echo $HOME');
homeDir = home.stdout;
user = whoami.stdout;
homeDir = home.stdout.trim();
user = whoami.stdout.trim();

printLog(envs['MIGRATIONS_DIR'], user, 'whoami');
printLog(envs['MIGRATIONS_DIR'], homeDir, 'homeDir');

const nvmExists = fs.existsSync(path.normalize(`${homeDir}/.nvm/versions/node/v18.16.1/bin`));
envs['PATH'] = `'${process?.env?.['PATH']}${nvmExists ? `:${path.normalize(`${homeDir}/.nvm/versions/node/v18.16.1/bin`)}` : ''}'`;
pathNvmFixed = true;
// let nvmExists;

// try {
// fs.accessSync(`/home/menzorg/.nvm/versions/node`, fs.constants.F_OK);
// nvmExists = true;
// } catch(e){
// printLog(envs['MIGRATIONS_DIR'], e?.message, 'nvmError');
// nvmExists = false;
// }

// printLog(envs['MIGRATIONS_DIR'], nvmExists, 'nvmExists');
// if (!nvmExists) {
// return true;
// }

// var fs = require('fs'); var versions = fs.readdirSync(${process.env['HOME']}/.nvm/versions/node); console.log(versions[versions.length-1])

let versions = [];
try {
versions = fs.readdirSync(`${homeDir}/.nvm/versions/node`);
printLog(envs['MIGRATIONS_DIR'], versions, 'versions');
} catch(e){
printLog(envs['MIGRATIONS_DIR'], e.toString(), 'versions error');
}

if (!versions?.length) {
return true;
}
const lastVersion = versions.sort()[versions.length -1];
printLog(envs['MIGRATIONS_DIR'], lastVersion, 'lastVersion');
const addition = `:${path.normalize(`${homeDir}/.nvm/versions/node/${lastVersion}/bin`)}`;
printLog(envs['MIGRATIONS_DIR'], addition, 'addition');
envs['PATH'] = `'${process?.env?.['PATH']}${addition}'`;
return true;
}

const call = async (options) => {

const isDeeplinksDocker = await _checkDeeplinksStatus();
const isDeepcaseDocker = await _checkDeepcaseStatus();
const envs = { ...options.envs, DOCKERHOST: String(internalIp?.v4?.sync()) };
const envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });
let envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });

printLog(envs['MIGRATIONS_DIR'], user, `user`);
printLog(envs['MIGRATIONS_DIR'], envs, `envs`);
Expand All @@ -341,9 +371,13 @@ const call = async (options) => {

if (platform !== "win32"){
fixPath();
// if (!pathNvmFixed) await _AddNvmDirToPathEnv(envs);
if (!envs['PATH']?.includes('nvm')) {
await _AddNvmDirToPathEnv(envs);
} else {
envs['PATH'] = `'${process?.env?.['PATH']}'`;
}
// if (!userAddedtoDockerGroup) await _AddUserToDocker(envs, user);
envs['PATH'] = `'${process?.env?.['PATH']}'`;

} else {
envs['PATH'] = process?.env?.['Path'];

Expand All @@ -360,6 +394,7 @@ const call = async (options) => {
}
printLog(envs['MIGRATIONS_DIR'], envs['PATH'], `PATH`);

envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });
const engineStr = _generateEngineStr({ needNPX, operation: options.operation, isDeeplinksDocker: isDeeplinksDocker.result, isDeepcaseDocker: isDeepcaseDocker.result, envs} )
const engine = await _execEngine({ envsStr, envs, engineStr });

Expand Down
60 changes: 36 additions & 24 deletions imports/engine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ const _generateAndFillEnvs = ({ envs, isDeeplinksDocker }: IGenerateEnvsOptions)

let userAddedtoDockerGroup = false;
let userAddingToDockerGroupInProcess = false;
let pathNvmFixed = false;
let user;
let homeDir;
let needNPX = false;
Expand Down Expand Up @@ -317,37 +316,45 @@ const _AddUserToDocker = async (envs: any, user: string): Promise<ICheckPermissi
const _AddNvmDirToPathEnv = async (envs: any): Promise<boolean> => {
const whoami = await execP('whoami');
const home = await execP('echo $HOME');
homeDir = home.stdout;
user = whoami.stdout;
homeDir = home.stdout.trim();
user = whoami.stdout.trim();

printLog(envs['MIGRATIONS_DIR'], user, 'whoami');
printLog(envs['MIGRATIONS_DIR'], homeDir, 'homeDir');

let nvmExists;
// let nvmExists;

// try {
// fs.accessSync(`/home/menzorg/.nvm/versions/node`, fs.constants.F_OK);
// nvmExists = true;
// } catch(e){
// printLog(envs['MIGRATIONS_DIR'], e?.message, 'nvmError');
// nvmExists = false;
// }

// printLog(envs['MIGRATIONS_DIR'], nvmExists, 'nvmExists');
// if (!nvmExists) {
// return true;
// }

// var fs = require('fs'); var versions = fs.readdirSync(${process.env['HOME']}/.nvm/versions/node); console.log(versions[versions.length-1])

let versions = [];
try {
fs.accessSync(`${homeDir}/.nvm/versions/node`, fs.constants.F_OK);
nvmExists = true;
versions = fs.readdirSync(`${homeDir}/.nvm/versions/node`);
printLog(envs['MIGRATIONS_DIR'], versions, 'versions');
} catch(e){
nvmExists = false;
printLog(envs['MIGRATIONS_DIR'], e.toString(), 'versions error');
}

printLog(envs['MIGRATIONS_DIR'], nvmExists, 'nvmExists');


printLog(envs['MIGRATIONS_DIR'], nvmExists, 'fs.existsSync(`${homeDir}/.nvm/versions/node`)');
if (!nvmExists) {
pathNvmFixed = true;
if (!versions?.length) {
return true;
}
const versions = fs.readdirSync(`${homeDir}/.nvm/versions/node`);;
printLog(envs['MIGRATIONS_DIR'], versions, 'versions');
if (versions.length === 0) {
pathNvmFixed = true;
return true;
}
envs['PATH'] = `'${process?.env?.['PATH']}${nvmExists ? `:${path.normalize(`${homeDir}/.nvm/versions/node/${versions.sort()[0]}/bin`)}` : ''}'`;
pathNvmFixed = true;
const lastVersion = versions.sort()[versions.length -1];
printLog(envs['MIGRATIONS_DIR'], lastVersion, 'lastVersion');
const addition = `:${path.normalize(`${homeDir}/.nvm/versions/node/${lastVersion}/bin`)}`;
printLog(envs['MIGRATIONS_DIR'], addition, 'addition');
envs['PATH'] = `'${process?.env?.['PATH']}${addition}'`;
return true;
}

Expand All @@ -356,7 +363,7 @@ export async function call (options: ICallOptions) {
const isDeeplinksDocker = await _checkDeeplinksStatus();
const isDeepcaseDocker = await _checkDeepcaseStatus();
const envs = { ...options.envs, DOCKERHOST: String(internalIp?.v4?.sync()) };
const envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });
let envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });

printLog(envs['MIGRATIONS_DIR'], user, `user`);
printLog(envs['MIGRATIONS_DIR'], envs, `envs`);
Expand All @@ -366,9 +373,13 @@ export async function call (options: ICallOptions) {

if (platform !== "win32"){
fixPath();
if (!pathNvmFixed) await _AddNvmDirToPathEnv(envs);
if (!envs['PATH']?.includes('nvm')) {
await _AddNvmDirToPathEnv(envs);
} else {
envs['PATH'] = `'${process?.env?.['PATH']}'`;
}
// if (!userAddedtoDockerGroup) await _AddUserToDocker(envs, user);
envs['PATH'] = `'${process?.env?.['PATH']}'`;

} else {
envs['PATH'] = process?.env?.['Path'];

Expand All @@ -385,6 +396,7 @@ export async function call (options: ICallOptions) {
}
printLog(envs['MIGRATIONS_DIR'], envs['PATH'], `PATH`);

envsStr = _generateAndFillEnvs({ envs, isDeeplinksDocker: isDeeplinksDocker.result });
const engineStr = _generateEngineStr({ needNPX, operation: options.operation, isDeeplinksDocker: isDeeplinksDocker.result, isDeepcaseDocker: isDeepcaseDocker.result, envs} )
const engine = await _execEngine({ envsStr, envs, engineStr });

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@deep-foundation/deeplinks",
"version": "0.0.254",
"version": "0.0.255",
"license": "Unlicense",
"type": "module",
"scripts": {
Expand Down

0 comments on commit 8d3b6a2

Please sign in to comment.