2020-01-04 21:47:03 -05:00
|
|
|
// module.exports = {
|
|
|
|
|
// download
|
|
|
|
|
// };
|
2018-10-30 18:09:58 -04:00
|
|
|
|
2018-10-30 19:54:49 -04:00
|
|
|
const request = require('request');
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const os = require('os');
|
|
|
|
|
const {execSync} = require('child_process');
|
|
|
|
|
const path = require('path');
|
2018-11-20 18:39:29 -05:00
|
|
|
const copydir = require('copy-dir');
|
2020-01-04 21:47:03 -05:00
|
|
|
const pyversion = require('./getpythonversions.js');
|
2018-10-30 18:31:40 -04:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
async function download(ver) {
|
2018-10-30 18:31:40 -04:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
let url = "";
|
|
|
|
|
let version = "";
|
|
|
|
|
|
|
|
|
|
if (ver === undefined) {
|
|
|
|
|
version = await pyversion.current;
|
|
|
|
|
console.log("Python: " + version.toString() + " Selected");
|
|
|
|
|
} else if (await pyversion.validateVersion(ver)) {
|
|
|
|
|
version = ver;
|
|
|
|
|
console.log("Python: " + version.toString() + " Selected");
|
|
|
|
|
} else {
|
|
|
|
|
console.log("Version of python not available");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (version !== "") {
|
|
|
|
|
console.log(await pyversion.getDownloadLink(version));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(url);
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// let url = await getPythonDownloadLink();
|
|
|
|
|
// let filename = path.parse(url).base;
|
|
|
|
|
// try {
|
|
|
|
|
// fs.mkdirSync('Python-Installer');
|
|
|
|
|
// } catch(e) {'';}
|
|
|
|
|
// try {
|
|
|
|
|
// fs.mkdirSync('Python');
|
|
|
|
|
// } catch(e) {'';}
|
|
|
|
|
// try {
|
|
|
|
|
// fs.mkdirSync('Temp-Python');
|
|
|
|
|
// } catch(e) {'';}
|
|
|
|
|
// try {
|
|
|
|
|
// fs.writeFileSync('.installerLocation', filename);
|
|
|
|
|
// } catch(e) {'';}
|
|
|
|
|
// // let installSettings = fs.readFileSync('unattend.xml');
|
|
|
|
|
|
|
|
|
|
// let out_file = `Python-Installer/${filename}`
|
|
|
|
|
|
|
|
|
|
// await new Promise(resolve => {
|
|
|
|
|
// request({
|
|
|
|
|
// uri: url,
|
|
|
|
|
// encoding: null
|
|
|
|
|
// }, function (error, response, body) {
|
|
|
|
|
// fs.writeFileSync(out_file, body, {});
|
|
|
|
|
// resolve();
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
// console.log('Download Complete!');
|
|
|
|
|
|
|
|
|
|
// switch (os.platform())
|
|
|
|
|
// {
|
|
|
|
|
// case 'win32': {
|
|
|
|
|
// try {
|
|
|
|
|
// let installerPath = path.join(__dirname, '..', 'Python-Installer/', filename);
|
|
|
|
|
// let tempPath = path.join(__dirname, '..', 'Temp-Python/');
|
|
|
|
|
// let targetPath = path.join(__dirname, '..', 'Python/');
|
|
|
|
|
// execSync(`${installerPath} /passive DefaultJustForMeTargetDir=${tempPath}`, {
|
|
|
|
|
// stdio: "inherit"
|
|
|
|
|
// });
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// console.log("Creating Portable Python Directory");
|
2018-10-30 19:54:49 -04:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// copydir.sync(tempPath, targetPath);
|
|
|
|
|
// console.log("Portable Directory Created!");
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// console.log("Uninstalling Unnecessary Python Files");
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// execSync(`${installerPath} /passive /uninstall`, {
|
|
|
|
|
// stdio: 'inherit'
|
|
|
|
|
// });
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// fs.rmdirSync(tempPath);
|
2018-11-21 20:42:39 -05:00
|
|
|
|
2020-01-04 21:47:03 -05:00
|
|
|
// console.log("PordaPy Installed!");
|
|
|
|
|
// } catch (err) {
|
|
|
|
|
// console.log(err);
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2018-10-30 19:54:49 -04:00
|
|
|
}
|
2020-01-04 21:47:03 -05:00
|
|
|
download('2.7.14');
|