diff --git a/inst-configs-repo/kylin-code/0.4.0/desktop_os_common-0.0.3.json b/inst-configs-repo/kylin-code/0.4.0/desktop_os_common-0.0.3.json new file mode 100644 index 0000000..eaabd9b --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/desktop_os_common-0.0.3.json @@ -0,0 +1,246 @@ +{ + "version":"0.0.3", + "kylin-ide-lowest-ver":"0.4.0", + "first_class_list":{ + "description":{ + "en":"", + "zh_cn":"勾选分类后,会安装该选项的基本插件、系统软件依赖。可以从插件市场或openKylin extensions-repo仓库获取更多插件。" + }, + "Remote_key":{ + "en":"Remote development", + "zh_cn":"远程开发" + }, + "C_key":{ + "en":"C/C++ development", + "zh_cn":"C/C++开发" + }, + "Python3_key":{ + "en":"Python3 development", + "zh_cn":"Python3开发" + }, + "Go_key":{ + "en":"Go development", + "zh_cn":"Go开发" + }, + "JavaScript_key":{ + "en":"Built-in JavaScript development", + "zh_cn":"内置JavaScript开发", + "show_type":"picked_gray" + } + }, + "second_class":{ + "Remote_key": { + "discription":{ + "en":"Remote development", + "zh_cn":"远程开发" + }, + "ext-list": [ + "KylinIdeTeam.extension-dependency", + "xhafei.remote-dev" + ], + "pkg-list":{ + }, + "script-list":[ + ] + }, + "C_key": { + "discription":{ + "en":"Basic function of C/C++ development: linting, intellisense, compile, debug. You may install other extensions to get more functions.", + "zh_cn":"C/C++开发需要的基本功能:语法检查、跳转、补全、编译、调试等。可以安装其他插件获得更多功能。" + }, + "ext-list": [ + "KylinIdeTeam.extension-dependency", + "KylinIdeTeam.gitlens", + "KylinIdeTeam.project-manager", + "KylinIdeTeam.vscode-clangd", + "KylinIdeTeam.debug", + "KylinIdeTeam.cmake-intellisence" + ], + "pkg-list":{ + "deb":{ + "git":{}, + "ssh-askpass":{}, + "clangd":{}, + "libclang-common-10-dev":{}, + "build-essential":{}, + "cmake":{}, + "gdb":{}, + "debhelper":{} + } + }, + "script-list":[ + ] + }, + "Python3_key":{ + "discription":{ + "en":"Python3 development", + "zh_cn":"Python3开发" + }, + "ext-list": [ + "KylinIdeTeam.extension-dependency", + "KylinIdeTeam.gitlens", + "KylinIdeTeam.python" + ], + "pkg-list":{ + "deb":{ + "git":{}, + "ssh-askpass":{}, + "python3":{}, + "python3-autopep8":{}, + "python3-pip":{} + } + }, + "script-list":[ + { + "order":1, + "postin":"python3-pip" , + "file_url":"base-url:/python3_config-0.0.2.sh", + "file_name": "python3_config-0.0.2.sh", + "ver": "0.0.2", + "sign-md5": "aef9f6ef790eae1249d645dab5c7faab19896a5e9357b4e058dddd74b2bff7d8ed5c793196d1e12b27608423931f54f55304be1faa439e21ff44d967477fa9dc9550db1a5a8605ab9e5cac3448095d9d1831b880b574dc63724bcd47c834f6865c98a26bbdbc6290f65b09ca8b45c80b6eed7caf978cd25cde28512daed2823d" + } + ] + }, + "Go_key":{ + "discription":{ + "en":"Go development", + "zh_cn":"Go开发" + }, + "ext-list": [ + "KylinIdeTeam.extension-dependency", + "KylinIdeTeam.gitlens", + "KylinIdeTeam.go" + ], + "pkg-list":{ + "deb":{ + "git":{}, + "ssh-askpass":{}, + "golang-1.14":{} + } + }, + "script-list":[ + { + "order":1, + "postin":"golang-1.14", + "file_url":"base-url:/go_config-0.0.2.js", + "file_name": "go_config-0.0.2.js", + "ver": "0.0.2", + "sign-md5": "a54150fd8eab3d686f3eee0e70215030bb0d886ecae1aced4dc0b6feccc4340f6f68812360ce1ad7c0c2c7317871dc2ee245c81aa6c122d119b06ba93c28ef85af75de42362553571ba935fef147d901005f1b36eda0f83e92d42462e0bd219d5d67812e1f89287b20eb632a42478f2f63a10688f5ec837ca35d050fdeac9936" + } + ] + }, + "JavaScript_key":{ + "discription":{ + "en":"Built-in support JavaScript development(Please install NodeJS by yourself if needed)", + "zh_cn":"内置支持JavaScript开发(如需NodeJS,请自行安装)" + }, + "ext-list": [ + + ], + "pkg-list":{ + + }, + "script-list":[ + + ] + } + }, + "ext_detail":{ + "KylinIdeTeam.extension-dependency":{ + "ext_id": "KylinIdeTeam.extension-dependency", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.project-manager":{ + "ext_id": "KylinIdeTeam.project-manager", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-gradle":{ + "ext_id": "KylinIdeTeam.vscode-gradle", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-java-dependency":{ + "ext_id": "KylinIdeTeam.vscode-java-dependency", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-java-pack": { + "ext_id": "KylinIdeTeam.vscode-java-pack", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-java-test": { + "ext_id": "KylinIdeTeam.vscode-java-test", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-maven": { + "ext_id": "KylinIdeTeam.vscode-maven", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.gitlens": { + "ext_id": "KylinIdeTeam.gitlens", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.cmake-intellisence": { + "ext_id": "KylinIdeTeam.cmake-intellisence", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.go": { + "ext_id": "KylinIdeTeam.go", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.java": { + "ext_id": "KylinIdeTeam.java", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.python": { + "ext_id": "KylinIdeTeam.python", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-clangd": { + "ext_id": "KylinIdeTeam.vscode-clangd", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.debug": { + "ext_id": "KylinIdeTeam.debug", + "ext_version": { + "latest":true + } + }, + "KylinIdeTeam.vscode-java-debug": { + "ext_id": "KylinIdeTeam.vscode-java-debug", + "ext_version": { + "latest":true + } + }, + "xhafei.remote-dev": { + "ext_id": "xhafei.remote-dev", + "ext_version": { + "latest":true + } + } + } +} diff --git a/inst-configs-repo/kylin-code/0.4.0/ext_link_address-0.0.2.json b/inst-configs-repo/kylin-code/0.4.0/ext_link_address-0.0.2.json new file mode 100644 index 0000000..3335d60 --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/ext_link_address-0.0.2.json @@ -0,0 +1,365 @@ +{ + "version": "0.0.2", + "KylinIdeTeam.extension-dependency": { + "ext_id": "KylinIdeTeam.extension-dependency", + "ext_name": "extension dependency", + "ext_descrip": { + "en": "extension dependency", + "zh_cn": "插件依赖管理器" + }, + + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-extension-dependency" + } + } + }, + "KylinIdeTeam.offline-extensions-manager": { + "ext_id": "KylinIdeTeam.offline-extensions-manager", + "ext_name":"offline extensions manager", + "ext_descrip": { + "en": "offline extensions manager", + "zh_cn": "离线插件管理器" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-offline-extensions-manager" + } + } + }, + "KylinIdeTeam.project-manager": { + "ext_id": "KylinIdeTeam.project-manager", + "ext_name":"Kylin Project Manager", + "ext_descrip": { + "en": "Kylin Project Manager", + "zh_cn": "麒麟项目管理器" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-project-manager" + } + } + }, + "KylinIdeTeam.vscode-gradle": { + "ext_id": "KylinIdeTeam.vscode-gradle", + "ext_name":"Java Gradle (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Gradle (Support openjdk11 runtime)", + "zh_cn": "Java Gradle(支持openjdk11运行时)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-gradle" + } + } + }, + "KylinIdeTeam.vscode-java-dependency": { + "ext_id": "KylinIdeTeam.vscode-java-dependency", + "ext_name":"Java Dependency (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Dependency (Support openjdk11 runtime)", + "zh_cn": "Java依赖(支持openjdk11运行时) " + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-java-dependency" + } + } + }, + "KylinIdeTeam.vscode-java-pack": { + "ext_id": "KylinIdeTeam.vscode-java-pack", + "ext_name":"Java Pack (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Pack (Support openjdk11 runtime)", + "zh_cn": "Java Pack(支持openjdk11运行时) " + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-java-pack" + } + } + }, + "KylinIdeTeam.vscode-java-test": { + "ext_id": "KylinIdeTeam.vscode-java-test", + "ext_name":"Java Test (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Test (Support openjdk11 runtime)", + "zh_cn": "Java Test(支持openjdk11运行时) " + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-java-test" + } + } + }, + "KylinIdeTeam.vscode-maven": { + "ext_id": "KylinIdeTeam.vscode-maven", + "ext_name":"Java Maven (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Maven (Support openjdk11 runtime)", + "zh_cn": "Java Maven(支持openjdk11运行时) " + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-maven" + } + } + }, + "KylinIdeTeam.gitlens": { + "ext_id": "KylinIdeTeam.gitlens", + "ext_name": "gitlens", + "ext_descrip": { + "en": "Gitlens lower version for friendly licence", + "zh_cn": "Gitlens免费版本" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-gitlens" + } + } + }, + "KylinIdeTeam.cmake-intellisence": { + "ext_id": "KylinIdeTeam.cmake-intellisence", + "ext_name": "CMake IntelliSence", + "ext_descrip": { + "en": "CMake IntelliSence", + "zh_cn": "CMake编辑支持" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "cmake-intellisence" + } + } + }, + "KylinIdeTeam.go": { + "ext_id": "KylinIdeTeam.go", + "ext_name": "Go(for KylinOS)", + "ext_descrip": { + "en": "Go(for KylinOS)", + "zh_cn": "Go编辑调试支持(适配麒麟操作系统)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-go" + } + } + }, + "KylinIdeTeam.java": { + "ext_id": "KylinIdeTeam.java", + "ext_name": "Java (Support openjdk11 runtime) ", + "ext_descrip": { + "en": "Java (Support openjdk11 runtime) ", + "zh_cn": "Java编辑支持 (支持openjdk11运行时)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-java" + } + } + }, + "KylinIdeTeam.python": { + "ext_id": "KylinIdeTeam.python", + "ext_name": "Python(with jedi language server)", + "ext_descrip": { + "en": "Python(with jedi language server) ", + "zh_cn": "Python编辑调试支持(使用jedi语言服务端)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-python" + } + } + }, + "KylinIdeTeam.vscode-clangd": { + "ext_id": "KylinIdeTeam.vscode-clangd", + "ext_name": "vscode-clangd", + "ext_descrip": { + "en": "C/C++ edit support, use clangd as language server", + "zh_cn": "C/C++编辑支持,使用clangd作为语言服务端" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-vscode-clangd" + } + } + }, + "KylinIdeTeam.debug": { + "ext_id": "KylinIdeTeam.debug", + "ext_name": "Native Debug(fix some bugs)", + "ext_descrip": { + "en": "C/C++ gdb debug support", + "zh_cn": "C/C++ gdb调试支持" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "native-debug" + } + } + }, + "KylinIdeTeam.historydebug": { + "ext_id": "KylinIdeTeam.historydebug", + "ext_name": "historyDebug", + "ext_descrip": { + "en": "history debug", + "zh_cn": "历史调试支持" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "historydebug" + } + } + }, + "KylinIdeTeam.js-debug": { + "ext_id": "KylinIdeTeam.js-debug", + "ext_name": "JavaScript Debugger(for KylinOS)", + "ext_descrip": { + "en": "JavaScript Debugger(for KylinOS)", + "zh_cn": "JavaScript调试支持(适配麒麟系统)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-js-debug" + } + } + }, + "KylinIdeTeam.vscode-java-debug": { + "ext_id": "KylinIdeTeam.vscode-java-debug", + "ext_name": "Java Debug (Support openjdk11 runtime)", + "ext_descrip": { + "en": "Java Debug (Support openjdk11 runtime)", + "zh_cn": "Java调试支持(支持openjdk11运行时)" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "vscode-java-debug" + } + } + }, + "KylinIdeTeam.deadlock-detect": { + "ext_id": "KylinIdeTeam.deadlock-detect", + "ext_name": "deadlock-detect", + "ext_descrip": { + "en": "C/C++/java deadlock detect", + "zh_cn": "C/C++/java 程序死锁分析" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "deadlock-detect" + } + } + }, + "KylinIdeTeam.memleak-detect": { + "ext_id": "KylinIdeTeam.memleak-detect", + "ext_name": "memleak-detect", + "ext_descrip": { + "en": "C/C++ memory leak detect", + "zh_cn": "C/C++ 程序泄漏检测" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-memleak-detect" + } + } + }, + "xhafei.remote-dev": { + "ext_id": "xhafei.remote-dev", + "ext_name": "Kylin remote development", + "ext_descrip": { + "en": "remote development support", + "zh_cn": "远程开发支持" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "mcy-kylin", + "repo": "remote-dev" + } + } + }, + "ms-vscode.cmake-tools": { + "ext_id": "ms-vscode.cmake-tools", + "ext_name": "CMake Tools", + "ext_descrip": { + "en": "CMake Tools", + "zh_cn": "CMake工具" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "mu_ruichao", + "repo": "exts" + } + } + }, + "KylinIdeTeam.qmake-tools": { + "ext_id": "KylinIdeTeam.qmake-tools", + "ext_name": "QMake Tools", + "ext_descrip": { + "en": "QMake Tools", + "zh_cn": "QMake工具" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-qmake-tools" + } + } + }, + "KylinIdeTeam.qt-support": { + "ext_id": "KylinIdeTeam.qt-support", + "ext_name": "Qt Support", + "ext_descrip": { + "en": "Qt Support", + "zh_cn": "Qt 支持" + }, + "ext_links": { + "gitee": { + "prefix": "https://gitee.com", + "org": "openkylin", + "repo": "ide-qt-support" + } + } + } + +} \ No newline at end of file diff --git a/inst-configs-repo/kylin-code/0.4.0/g_index.json b/inst-configs-repo/kylin-code/0.4.0/g_index.json new file mode 100644 index 0000000..6f6fb3f --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/g_index.json @@ -0,0 +1,32 @@ +{ + "ver": "0.0.3", + "base-url":"https://gitee.com/openkylin/extensions-repo/raw/master/inst-configs-repo/kylin-code/0.4.0", + "ext-file": { + "file_url": "base-url:/ext_link_address-0.0.2.json", + "file_name": "ext_link_address-0.0.2.json", + "ver": "0.0.2", + "sign-md5": "1697c442da9dd290ef353a230f6de2e926d7b82c650e20a72042bef82ee908a1ced3f82b1905886d3e061eb7c96082e3fb6148f56cdd8486e5bbc470cd9f1d75d2ee69d08e8ba68df498da5203f4ad85c27f50386032e6cb3893a6dd04060ee358db33fca360d9e0d523852870563bd4ded45dbe2adf9e710a3db7719c7e74f6" + }, + "match-script": + { + "file_url": "base-url:/os_classify_script-0.0.2.js", + "file_name": "os_classify_script-0.0.2.js", + "ver": "0.0.2", + "sign-md5": "844d390832ab4e5fa9576e60f348a10cbd6474bff8a7af773d53a11243a0bb1e0f057ba5ba564516d25b8fe1e05b25a7540e2f037d26a574e2d6c2e1659f32425050cb3b7b39aea8ede59f165b3ed19a096100934970a1a1e6499dd32f82d20eb9a711dc449e6de3a45c10f75ec51c7c7b28e1851b50250499560b9d7eb2e826" + }, + "config-file": { + "x86_openkylin_desktop": [ + { + "discription": { + "en": "X86 openKylin Desktop", + "zh_cn": "X86 openKylin开源操作系统" + }, + "file_url": "base-url:/desktop_os_common-0.0.3.json", + "file_name": "desktop_os_common-0.0.3.json", + "ver": "0.0.3", + "kylin-ide-lowest-ver": "0.4.0", + "sign-md5":"1b8df34d441b8a1b4bb6859164a661c5ee1984193e361da3ae0ad7fc123c76a21c11f75b2d1926b9d71bfb2a9e59f0d07e1fe8efabdabbc37bf463904fb3e4243ec4e5340a92ae245910372349b972beb08fbd72f47984acbcaac2527fc7ff1605626e996d00a5b0f4b9d4a22ece22afc647d34627e96c4f22c1c043b845a20b" + } + ] + } +} \ No newline at end of file diff --git a/inst-configs-repo/kylin-code/0.4.0/go_config-0.0.2.js b/inst-configs-repo/kylin-code/0.4.0/go_config-0.0.2.js new file mode 100644 index 0000000..b80e05b --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/go_config-0.0.2.js @@ -0,0 +1,527 @@ +const { exec, spawnSync, spawn, execSync } = require('child_process'); +const os = require('os'); +const fs = require('fs'); +//go工具安装 +function GoToolsInstall(archName, goVersion, goPath, systemtype,controller) { + return new Promise(async (resolve, reject) => { + let installToolsMessage = ''; + let codeProcess = 0 + if (archName.indexOf('longarch64') === -1) { + installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go版本为" + goVersion + "的工具:" + '\n'; + switch (goVersion) { + case '1.13': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + try { + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return dlv160Install(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + }) + .catch((error) => { + reject(error); + }); + + resolve([installToolsMessage, codeProcess]) + + } catch (error) { + console.log("Go工具安裝失败!") + } + + return + case '1.14': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + try { + + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return dlv161Install(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + }) + .catch((error) => { + reject(error); + }); + + resolve([installToolsMessage, codeProcess]) + } catch (error) { + console.log("Go工具安裝失败:", error); + reject(error); + } + return + case '1.15': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + try { + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return dlv161Install(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + }) + .catch((error) => { + reject(error); + }); + + resolve([installToolsMessage, codeProcess]) + } catch (error) { + console.log("Go工具安裝失败:", error) + } + return + default: + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go工具:") + installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go工具:" + '\n'; + try { + await goplsInstall(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return dlvInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + }) + .catch((error) => { + reject(error); + }); + resolve([installToolsMessage, codeProcess]) + } catch (error) { + console.log("Go工具安裝失败:", error) + reject(error); + } + } + } else { + installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go版本为" + goVersion + "的工具:" + '\n'; + switch (goVersion) { + case '1.15': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + try { + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + .catch((error) => { + reject(error); + }); + + resolve([installToolsMessage, codeProcess]) + } catch (error) { + reject(error); + } + + return + case '1.14': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + try { + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + .catch((error) => { + console.error(error); + reject(error); + }); + resolve([installToolsMessage, codeProcess]) + } catch (error) { + console.log("Go工具安裝失败:", error); + reject(error); + } + return + case '1.13': + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") + + try { + await gopls095Install(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + .catch((error) => { + console.error(error); + reject(error); + }); + } catch (error) { + console.log("Go工具安裝失败:", error) + reject(error); + } + + return + default: + console.log("正在", archName, "架构,", systemtype, "系统类型上安装go工具:") + installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go工具" + '\n'; + try { + await goplsInstall(goPath,controller) + .then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code; + return goOutLineInstall(goPath,controller). then(([results, code,signal]) => { + installToolsMessage += results + '\n' + codeProcess += code + }).catch((error) => { + reject(error); + }); + }) + .catch((error) => { + console.error(error); + reject(error); + }); + resolve([installToolsMessage, codeProcess]) + } catch (error) { + console.log("Go工具安裝失败:", error); + reject(error); + } + + } + + } + }) + + +} +//判断go路径是否存在 +function executableFileExists(filePath) { + let exists = true; + try { + exists = fs.statSync(filePath).isFile(); + if (exists) { + fs.accessSync(filePath, fs.constants.F_OK | fs.constants.X_OK); + } + } catch (e) { + exists = false; + } + return exists; +} +//下载gopls@0.9.5 +function gopls095Install(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "golang.org/x/tools/gopls@v0.9.5"],{detached:true,shell:true}); + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + ls.on('close', (code,signal) => { + console.log(`子进程退出码:${code}`); + controller.signal.removeEventListener('abort', cancelTask); + if (code === 0) { + console.log("gopls@v0.9.5安装成功"); + resolve(["gopls@v0.9.5安装成功", code,signal]); + + } else { + console.log("gopls@v0.9.5安装失败"); + reject(["gopls@v0.9.5安装失败", code,signal]); + } + + }); + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) +} +//下载gopls +function goplsInstall(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "golang.org/x/tools/gopls"],{detached:true,shell:true}); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + + ls.on('close', (code,signal) => { + console.log(`子进程退出码:${code}`); + controller.signal.removeEventListener('abort', cancelTask); + if (code === 0) { + console.log("gopls安装成功"); + resolve(["gopls安装成功", code,signal]); + }else { + console.log("gopls安装失败"); + reject(["gopls安装失败", code,signal]); + } + }); + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) + +} +//下载dlv@1.6.0 +function dlv160Install(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv@v1.6.0"],{detached:true,shell:true}); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + + ls.on('close', (code,signal) => { + console.log(`子进程退出码:${code}`); + controller.signal.removeEventListener('abort', cancelTask); + if (code === 0) { + console.log("dlv@v1.6.0安装成功"); + resolve(["dlv@v1.6.0安装成功", code,signal]); + } else { + console.log("dlv@v1.6.0安装失败"); + reject(["dlv@v1.6.0安装失败", code,signal]); + } + }); + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) + +} +//下载dlv@1.6.1 +function dlv161Install(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv@v1.6.1"],{detached:true,shell:true}); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + + ls.on('close', (code,signal) => { + console.log(`子进程退出码:${code}`); + controller.signal.removeEventListener('abort', cancelTask); + if (code === 0) { + console.log("dlv@v1.6.1安装成功"); + resolve(["dlv@v1.6.1安装成功", code,signal]) + }else { + console.log("dlv@v1.6.1安装失败"); + reject(["dlv@v1.6.1安装失败", code,signal]) + } + }); + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) + +} +//下载dlv +function dlvInstall(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv"],{detached:true,shell:true}); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + + ls.on('close', (code,signal) => { + console.log(`子进程退出码:${code}`); + controller.signal.removeEventListener('abort', cancelTask); + if (code === 0) { + console.log("dlv安装成功"); + resolve(["dlv安装成功", code,signal]) + } else { + console.log("dlv安装失败"); + reject(["dlv安装失败", code,signal]) + } + }); + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) +} + +//下载go-outline +function goOutLineInstall(goPath,controller) { + return new Promise((resolve, reject) => { + const ls = spawn(goPath, ["get", "-v", "github.com/ramya-rao-a/go-outline"],{detached:true,shell:true}); + ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); + + ls.stderr.on('data', (data) => { console.error(`${data}`); }); + + ls.on('close', (code,signal) => { + controller.signal.removeEventListener('abort', cancelTask); + console.log(`子进程退出码:${code}`); + if (code === 0) { + console.log("go-outline安装成功"); + resolve(["go-outline安装成功", code,signal]) + } else { + console.log("go-outline安装失败"); + reject(["go-outline安装失败", code,signal]) + } + }); + + const cancelTask=()=>{ + if(ls.pid){ + execSync(`kill -9 -${ls.pid}`); + } + } + controller.signal.addEventListener('abort', cancelTask); + }) +} +//获取go路径以及版本号 +function getGoPath() { + const p = ""; + const defaultPathsForGo = + process.platform === 'win32' + ? ['C:\\Program Files\\Go\\bin\\go.exe', 'C:\\Program Files (x86)\\Go\\bin\\go.exe'] + : ['/usr/bin/go', '/bin/go', '/usr/local/go/bin/go', '/usr/local/bin/go', '/usr/lib/go-1.15/bin/go', '/usr/lib/go-1.14/bin/go', '/usr/lib/go-1.13/bin/go']; + for (const p of defaultPathsForGo) { + if (executableFileExists(p)) { + + return p; + } + + } + return p; +} +//设置go代理 +function setting(goPath) { + process.env.GO111MODULE = "on"; + process.env.GOPROXY = "https://goproxy.cn,direct"; + exec(`${goPath} env -w GO111MODULE=on && ${goPath} env -w GOPROXY=https://goproxy.cn,direct`, (error, stdout, stderr) => { + + if (error) { + console.error(`exec error: ${error}`); + return; + } + // console.log(`stdout: ${stdout}`); + console.log("Go代理设置成功!") + // console.log(`stderr: ${stderr}`); + }) + +} +//检查系统类型 +function checkSystemType() { + let cmdResult = spawnSync('ls', ['/usr/bin/dpkg']); + if (cmdResult.stdout !== null) { + let libcResult = spawnSync('dpkg-query', ['-W', 'libc6']); + + if (libcResult.stdout !== null) { + if (libcResult.stdout.toString() !== '') { + return 'deb'; + } + + } + } + cmdResult = spawnSync('ls', ['/usr/bin/rpm']); + if (cmdResult.stdout !== null) { + let libcResult = spawnSync('rpm', ['-qa', 'glibc']); + if (libcResult.stdout !== null) { + if (libcResult.stdout.toString() !== '') { + return 'rpm'; + } + + } + } + return 'unknown'; + +} + + +async function main(controller) { + return new Promise((resolve, reject) => { + let goVersion = ""; + let goPath = ""; + const archName = os.arch(); + goPath = getGoPath(); + if (goPath === '') { + resolve("go路径找不到"); + return; + } + if (goPath.indexOf('go-1.15') !== -1) { + goVersion = "1.15"; + } else if (goPath.indexOf('go-1.14') !== -1) { + goVersion = "1.14"; + } else if (goPath.indexOf('go-1.13') !== -1) { + goVersion = "1.13"; + } else { + + let cmdResult = spawnSync('go', ['version']); + if (cmdResult && cmdResult.stdout !== null && cmdResult.stdout.toString().indexOf("1.13") !== -1) { + goVersion = '1.13'; + } + } + const systemtype = checkSystemType(); + + + let p = new Promise((resolve, reject) => { + setting(goPath) + setTimeout(() => { + resolve(); + }, 1000); + + // reject("dddd"); + }) + p.then(async (value) => { + if (goPath !== "") { + GoToolsInstall(archName, goVersion, goPath, systemtype,controller) + .then(([results, code]) => { + resolve([results, code]) + }).catch((error) => { + reject(error); + }); + } else { + reject("找不到go路径") + } + + + }) + }) + +} + +module.exports = { + main +} diff --git a/inst-configs-repo/kylin-code/0.4.0/os_classify_script-0.0.2.js b/inst-configs-repo/kylin-code/0.4.0/os_classify_script-0.0.2.js new file mode 100644 index 0000000..d2f04be --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/os_classify_script-0.0.2.js @@ -0,0 +1,182 @@ +const os = require('os'); +const fs = require('fs'); +var os_arch; +var os_org; +var os_type; +var os_custom; +var pretty_name; +var milestone; +var dist_id; +var pretty_name; +var os_info; +const kyinfoPath = '/etc/.kyinfo'; +const osReleasePath = '/etc/os-release'; +//检查系统架构 +function getArch() { + const arch = os.arch(); + let res = ''; + switch (arch) { + case 'x64': + case 'x86': + case "x86_64": res = 'x86'; break; + case 'arm': + case 'arm64': + case 'aarch64': res = 'arm'; break; + case 'loongarch': res = 'loongarch'; break; + default: res = arch; + } + return res; +} + +function getoskey() { + if (os_arch == 'x86' && os_org == 'openkylin' && os_type == 'desktop') { + return "x86_openkylin_desktop"; + } + return "undefined" +} + +function getFileData() { + //1、架构 + //2、是否是麒麟系统 + //3、是桌面系统还是服务器系统 + //4、是否是V10 + //5、是否带sp,是sp几 + //6、小版本号 + //7、定制版字符 + os_arch = getArch(); + /*分类型进行处理 + 1.存在.kyinfo的系统 ,取值dist_id 中 架构之前的信息 + 2.不在.kyinfo的系统,但是存在os-release 的kylin系统 + 3.不是kylin的系统,但是存在os-release + */ + let data; + let releasedata; + if (fs.existsSync(kyinfoPath) && fs.existsSync(osReleasePath)) { + os_org = "kylin"; + try { + let version_id; + data = fs.readFileSync(kyinfoPath, 'utf8'); + releasedata = fs.readFileSync(osReleasePath, 'utf8'); + // 使用 split 方法将文件内容分割成行数组 + const lines = data.split('\n'); + // 遍历行数组 获取系统架构 + lines.forEach((line) => { + line=line.replace(/ /g, ""); + if (line.startsWith("milestone=")) { + milestone = line.slice(10).toLocaleLowerCase(); + } else if (line.startsWith("dist_id=")) { + dist_id = line.slice(8).toLocaleLowerCase(); + } + });//end lines + + const releasedatalines = releasedata.split('\n'); + releasedatalines.forEach((line) => { + if (line.startsWith("PRETTY_NAME=")) { + pretty_name = line.slice(12).toLocaleLowerCase().replace(/"/g, ''); + } else if (line.startsWith("VERSION_ID=")) { + version_id = line.slice(11).toLocaleLowerCase().replace(/"/g, ''); + } + }); + if (version_id) { + os_version_id = version_id; + } + os_type = dist_id.includes('desktop') ? "desktop" : "server"; + if (milestone.indexOf('release')) { + os_release = milestone.slice(milestone.indexOf('release') + 8); + } + + if (dist_id.includes('edu')) { + os_custom = 'edu'; + } else { + os_custom = 'gen'; + } + if (dist_id.includes('hwe')) { + os_custom += 'hwe'; + } + if (dist_id.includes('gfb')) { + os_custom += 'gfb' + } + } catch (err) { + os_info = ""; + console.log(err); + } + } else + if (fs.existsSync(osReleasePath)) { + try { + let version_id; + releasedata = fs.readFileSync(osReleasePath, 'utf8'); + const releasedatalines = releasedata.split('\n'); + releasedatalines.forEach((line) => { + if (line.startsWith("PRETTY_NAME=")) { + pretty_name = line.slice(12).toLocaleLowerCase().replace(/"/g, ''); + pretty_name=pretty_name.replace(/ /g, "_") + } else if (line.startsWith("VERSION_ID=")) { + version_id = line.slice(11).toLocaleLowerCase().replace(/"/g, ''); + } else if (line.startsWith("ID=")) { + os_org = line.slice(3).toLocaleLowerCase().replace(/"/g, ''); + } else if (line.startsWith("VERSION_CODENAME=")) { + os_custom = line.slice(17).toLocaleLowerCase().replace(/"/g, ''); + }else if(line.startsWith('NAME=')){ + os_org=line.slice(5).toLocaleLowerCase().replace(/"/g, '') + } + }); + if (version_id) { + os_version_id = version_id; + } + if (pretty_name.includes('openkylin')) + os_type = "desktop"; + + } catch (err) { + os_info = ""; + } + } + +} +function getosinfo(){ + os_info = getoskey(); + return os_info; +} + +function showosinfo() { + let osData = ''; + if (fs.existsSync(kyinfoPath)) { + if (os_arch) { osData += os_arch; } + if (os_org) { osData += "_" + os_org; } + if (milestone) { osData += "_" + milestone; } + osData = osData.replace(/^_+|_+$/g, ''); + osData = osData.replace("-release-", "-"); + osData = osData.replace(/-/g, "_"); + return osData; + } + else { + //架构 + if (os_arch) {osData += os_arch;} + //组织 + if (os_org) {osData += "_" + os_org;} + //操作系统类型 + if (os_type) {osData += "_" + os_type;} + if (pretty_name) {osData += "_" + pretty_name;} + + if(os_custom){ osData += "_" + os_custom; } + osData = osData.replace(/^_+|_+$/g, ''); + return osData; + } +} + +function getsupportlist(){ + let strArry=["X86 openkylin操作系统" + ]; + return strArry; +} + +function getoscontent(){ + return [getosinfo(),showosinfo(),getsupportlist()] +} +getFileData(); + +module.exports = { + getosinfo , + showosinfo, + getsupportlist, + getoscontent +} \ No newline at end of file diff --git a/inst-configs-repo/kylin-code/0.4.0/python3_config-0.0.2.sh b/inst-configs-repo/kylin-code/0.4.0/python3_config-0.0.2.sh new file mode 100644 index 0000000..6d372b8 --- /dev/null +++ b/inst-configs-repo/kylin-code/0.4.0/python3_config-0.0.2.sh @@ -0,0 +1,3 @@ +#!/bin/bash +echo "exec \"pip3 install pylint -i https://pypi.tuna.tsinghua.edu.cn/simple\"" +pip3 install pylint -break-system-packages -i https://pypi.tuna.tsinghua.edu.cn/simple \ No newline at end of file