Skip to content

Commit

Permalink
engine.cjs sync
Browse files Browse the repository at this point in the history
  • Loading branch information
Konard committed Jul 20, 2023
1 parent 6e08412 commit 53661bd
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions imports/engine.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ let userAddingToDockerGroupInProcess = false;
let pathNvmFixed = false;
let user;
let homeDir;
let needNPX = false;

const _checkDeeplinksStatus = async () => {
let status;
Expand Down Expand Up @@ -226,7 +227,7 @@ const _checkDeepcaseStatus = async () => {
};
exports._checkDeepcaseStatus = _checkDeepcaseStatus;

const _generateEngineStr = ({ operation, isDeeplinksDocker, isDeepcaseDocker, envs }) => {
const _generateEngineStr = ({ needNPX, operation, isDeeplinksDocker, isDeepcaseDocker, envs }) => {
let str;
if (![ 'init', 'migrate', 'check', 'run', 'sleep', 'reset', 'dock', 'compose' ].includes(operation)) return ' echo "not valid operation"';
if (operation === 'init') {
Expand All @@ -236,7 +237,7 @@ const _generateEngineStr = ({ operation, isDeeplinksDocker, isDeepcaseDocker, en
str = ` cd "${path.normalize(`${_hasura}/local/`)}" ${platform === "win32" ? '' : ` && mkdir -p ${envs['MIGRATIONS_DIR']}`} && docker run -v "${envs['MIGRATIONS_DIR']}":/migrations -v deep-db-data:/data --rm --name links --entrypoint "sh" deepf/deeplinks:main -c "cd / && tar xf /backup/volume.tar --strip 1 && cp /backup/.migrate /migrations/.migrate"`;
}
if (operation === 'check') {
str = ` ${ platform === "win32" ? 'npm i -g npx &&' : ''} cd "${_deeplinks}" ${isDeeplinksDocker===undefined ? `&& ${ platform === "win32" ? 'set COMPOSE_CONVERT_WINDOWS_PATHS=1&& ' : ''} npm run start-deeplinks-docker && npx -q wait-on --timeout 100000 ${+DOCKER ? 'http-get://host.docker.internal:3006' : DEEPLINKS_PUBLIC_URL}/api/healthz` : ''} && cd "${path.normalize(`${_hasura}/local/`)}" && npm run docker-local && npx -q wait-on --timeout 100000 ${+DOCKER ? `http-get://deep-hasura` : 'http-get://localhost'}:8080/healthz`;
str = ` ${ platform === "win32" && needNPX ? 'npm i -g npx &&' : ''} cd "${_deeplinks}" ${isDeeplinksDocker===undefined ? `&& ${ platform === "win32" ? 'set COMPOSE_CONVERT_WINDOWS_PATHS=1&& ' : ''} npm run start-deeplinks-docker && npx -q wait-on --timeout 100000 ${+DOCKER ? 'http-get://host.docker.internal:3006' : DEEPLINKS_PUBLIC_URL}/api/healthz` : ''} && cd "${path.normalize(`${_hasura}/local/`)}" && npm run docker-local && npx -q wait-on --timeout 100000 ${+DOCKER ? `http-get://deep-hasura` : 'http-get://localhost'}:8080/healthz`;
}
if (operation === 'run') {
str = ` cd "${path.normalize(`${_hasura}/local/`)}" && docker-compose -p deep stop postgres hasura && docker volume create deep-db-data ${platform === "win32" ? '' : `&& mkdir -p ${envs['MIGRATIONS_DIR']}`} && docker pull deepf/deeplinks:main && ${+envs['RESTORE_VOLUME_FROM_SNAPSHOT'] ? `docker run -v "${envs['MIGRATIONS_DIR']}":/migrations -v deep-db-data:/data --rm --name links --entrypoint "sh" deepf/deeplinks:main -c "cd / && tar xf /backup/volume.tar --strip 1 && cp /backup/.migrate /migrations/.migrate" && ` : '' } cd "${_deeplinks}" ${isDeeplinksDocker===undefined ? `&& ${ platform === "win32" ? 'set COMPOSE_CONVERT_WINDOWS_PATHS=1&& ' : ''} npm run start-deeplinks-docker && npx -q wait-on --timeout 10000 ${+DOCKER ? 'http-get://host.docker.internal:3006' : DEEPLINKS_PUBLIC_URL}/api/healthz` : ''} && cd "${path.normalize(`${_hasura}/local/`)}" && npm run docker-local && npx -q wait-on --timeout 100000 ${+DOCKER ? `http-get://deep-hasura` : 'http-get://localhost'}:8080/healthz && ( cd ${_deeplinks}/local/deepcase ${ isDeepcaseDocker === undefined ? '&& docker-compose pull && docker-compose -p deep up -d' : '' } ) ${+envs['MANUAL_MIGRATIONS'] ? `&& cd "${_deeplinks}" && npm run migrate -- -f ${envs['MIGRATIONS_DIR']}/.migrate` : ''}`;
Expand All @@ -250,7 +251,7 @@ const _generateEngineStr = ({ operation, isDeeplinksDocker, isDeepcaseDocker, en
}
if (operation === 'reset') {
if (platform === "win32") {
str = ` cd "${_deeplinks}" && npm i -g npx && npx rimraf ${envs['MIGRATIONS_DIR']}/.migrate && powershell -command docker rm -fv $(docker ps -a --filter name=deep- -q --format '{{ $a:= false }}{{ $name:= .Names }}{{ range $splited := (split .Names \`"-\`") }}{{ if eq \`"case\`" $splited }}{{$a = true}}{{ end }}{{end}}{{ if eq $a false }}{{ $name }}{{end}}'); docker volume rm $(docker volume ls -q --filter name=deep-)${ !+DOCKER ? `; docker network rm $(docker network ls -q -f name=deep-) ` : ''};`;
str = ` cd "${_deeplinks}" && ${needNPX ? 'npm i -g npx &&' : ''} npx rimraf ${envs['MIGRATIONS_DIR']}/.migrate && powershell -command docker rm -fv $(docker ps -a --filter name=deep- -q --format '{{ $a:= false }}{{ $name:= .Names }}{{ range $splited := (split .Names \`"-\`") }}{{ if eq \`"case\`" $splited }}{{$a = true}}{{ end }}{{end}}{{ if eq $a false }}{{ $name }}{{end}}'); docker volume rm $(docker volume ls -q --filter name=deep-)${ !+DOCKER ? `; docker network rm $(docker network ls -q -f name=deep-) ` : ''};`;
} else {
str = ` cd "${_deeplinks}" && npx rimraf ${envs['MIGRATIONS_DIR']}/.migrate && (docker rm -fv $(docker ps -a --filter name=deep- -q --format '{{ $a:= false }}{{ range $splited := (split .Names "-") }}{{ if eq "case" $splited }}{{$a = true}}{{ end }}{{ end }}{{ if eq $a false }}{{.ID}}{{end}}') || true) && (docker volume rm $(docker volume ls -q --filter name=deep-) || true)${ !+DOCKER ? ` && (docker network rm $(docker network ls -q -f name=deep-) || true)` : ''}`;
}
Expand Down Expand Up @@ -326,28 +327,40 @@ const _AddNvmDirToPathEnv = async (envs) => {
}

const call = async (options) => {
//@ts-ignore

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

printLog(envs['MIGRATIONS_DIR'], user, `user`);
printLog(envs['MIGRATIONS_DIR'], envs, `envs`);
printLog(envs['MIGRATIONS_DIR'], options, `options`);
printLog(envs['MIGRATIONS_DIR'], isDeeplinksDocker, `isDeeplinksDocker`);
printLog(envs['MIGRATIONS_DIR'], isDeepcaseDocker, `isDeepcaseDocker`);

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

printLog(envs['MIGRATIONS_DIR'], envs['PATH'].includes('nvm'), `envs['PATH'].includes('nvm')`);
if (envs['PATH'].includes('nvm')) {
const whereNvm = (await execP('where nvm'));
printLog(envs['MIGRATIONS_DIR'], whereNvm, `whereNvm`);
if (whereNvm.stderr)
needNPX = true;
} else {
needNPX = true;
}
printLog(envs['MIGRATIONS_DIR'], needNPX, `needNPX`);
}
printLog(envs['MIGRATIONS_DIR'], envs['PATH'], `PATH`);

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

printLog(envs['MIGRATIONS_DIR'], engineStr, `engineStr`);
Expand Down

0 comments on commit 53661bd

Please sign in to comment.