diff --git a/package.json b/package.json index 911e8c4..2cfeeed 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "request": "^2.88.2", "rimraf": "^5.0.5", "unzipper": "^0.10.14", + "upath": "^2.0.1", "uuid": "^9.0.1", "which": "^4.0.0", "winreg": "^1.2.5" diff --git a/src/main/pkg_mng/installs_steps_methods/git_clone.js b/src/main/pkg_mng/installs_steps_methods/git_clone.js index 5c4184f..7521e5b 100644 --- a/src/main/pkg_mng/installs_steps_methods/git_clone.js +++ b/src/main/pkg_mng/installs_steps_methods/git_clone.js @@ -1,16 +1,15 @@ import path from "node:path" import fs from "node:fs" -import os from "node:os" import ChildProcess from "node:child_process" +import upath from "upath" import sendToRender from "../../utils/sendToRender" - import Vars from "../../vars" const gitCMD = fs.existsSync(Vars.git_path) ? `${Vars.git_path}` : "git" export default async (manifest, step) => { - const final_path = path.resolve(manifest.install_path, step.path) + const final_path = upath.normalizeSafe(path.resolve(manifest.install_path, step.path)) if (!fs.existsSync(final_path)) { fs.mkdirSync(final_path, { recursive: true }) @@ -21,17 +20,18 @@ export default async (manifest, step) => { statusText: `Cloning ${step.url}`, }) + console.log(`USING GIT BIN>`, gitCMD) + console.log(`[${manifest.id}] steps.git_clone() | Cloning ${step.url}...`) - const command = `${gitCMD} clone --recurse-submodules --remote-submodules ${step.url} ${final_path}` - - //fs.mkdirSync(final_path, { recursive: true }) + const command = `${gitCMD} clone --depth ${step.depth ?? 1} --recurse-submodules --remote-submodules ${step.url} ${final_path}` await new Promise((resolve, reject) => { ChildProcess.exec( command, { shell: true, + cwd: final_path, }, (error, out) => { if (error) { diff --git a/src/main/vars.js b/src/main/vars.js index 296b4dd..d327ca9 100644 --- a/src/main/vars.js +++ b/src/main/vars.js @@ -1,18 +1,19 @@ import path from "node:path" +import upath from "upath" -global.OS_USERDATA_PATH = path.resolve( +global.OS_USERDATA_PATH = upath.normalizeSafe(path.resolve( process.env.APPDATA || (process.platform == "darwin" ? process.env.HOME + "/Library/Preferences" : process.env.HOME + "/.local/share"), -) -global.RUNTIME_PATH = path.join(global.OS_USERDATA_PATH, "rs-bundler") +)) +global.RUNTIME_PATH = upath.normalizeSafe(path.join(global.OS_USERDATA_PATH, "rs-bundler")) -global.PACKAGES_PATH = path.join(global.RUNTIME_PATH, "packages") -global.BINARIES_PATH = path.resolve(global.RUNTIME_PATH, "bin_lib") +global.PACKAGES_PATH = upath.normalizeSafe(path.join(global.RUNTIME_PATH, "packages")) +global.BINARIES_PATH = upath.normalizeSafe(path.resolve(global.RUNTIME_PATH, "bin_lib")) -global.LOCAL_DB = path.join(global.RUNTIME_PATH, "local_db.json") +global.LOCAL_DB = upath.normalizeSafe(path.join(global.RUNTIME_PATH, "local_db.json")) -global.SEVENZIP_PATH = path.resolve(global.BINARIES_PATH, "7z-bin", process.platform === "win32" ? "7za.exe" : "7za") -global.GIT_PATH = path.resolve(global.BINARIES_PATH, "git-bin", "bin", process.platform === "win32" ? "git.exe" : "git") +global.SEVENZIP_PATH = upath.normalizeSafe(path.resolve(global.BINARIES_PATH, "7z-bin", process.platform === "win32" ? "7za.exe" : "7za")) +global.GIT_PATH = upath.normalizeSafe(path.resolve(global.BINARIES_PATH, "git-bin", "bin", process.platform === "win32" ? "git.exe" : "git")) export default { binaries_path: global.BINARIES_PATH,