parent
311e3f0034
commit
e6ef700dab
@ -1,7 +1,8 @@
|
|||||||
const node = require('./node')
|
const node = require('./node')
|
||||||
const git = require('./git')
|
const git = require('./git')
|
||||||
const overwall = require('./overwall')
|
const overwall = require('./overwall')
|
||||||
|
const pip = require('./pip')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
node, git, overwall
|
node, git, pip, overwall
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
name: 'PIP加速',
|
||||||
|
statusOff: true,
|
||||||
|
enabled: null, // 没有开关
|
||||||
|
tip: '如果你没有安装pip则不需要启动它',
|
||||||
|
startup: {
|
||||||
|
},
|
||||||
|
setting: {
|
||||||
|
trustedHost: 'pypi.org',
|
||||||
|
registry: ''// 可以选择切换官方或者淘宝镜像
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
const pipConfig = require('./config')
|
||||||
|
const PipPlugin = function (context) {
|
||||||
|
const { config, shell, event, log } = context
|
||||||
|
const api = {
|
||||||
|
async start () {
|
||||||
|
await api.setRegistry({ registry: config.get().plugin.pip.setting.registry })
|
||||||
|
await api.setTrustedHost(config.get().plugin.pip.setting.trustedHost)
|
||||||
|
},
|
||||||
|
|
||||||
|
async close () {
|
||||||
|
},
|
||||||
|
|
||||||
|
async restart () {
|
||||||
|
await api.close()
|
||||||
|
await api.start()
|
||||||
|
},
|
||||||
|
|
||||||
|
async save (newConfig) {
|
||||||
|
await api.setVariables()
|
||||||
|
},
|
||||||
|
async getPipEnv () {
|
||||||
|
let ret = await shell.exec(['pip config list'], { type: 'cmd' })
|
||||||
|
if (ret != null) {
|
||||||
|
ret = ret.trim()
|
||||||
|
const lines = ret.split('\n')
|
||||||
|
const vars = {}
|
||||||
|
for (const line of lines) {
|
||||||
|
if (!line.startsWith('global')) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
const key = line.substring(0, line.indexOf('='))
|
||||||
|
let value = line.substring(line.indexOf('=') + 1)
|
||||||
|
if (value.startsWith('\'')) {
|
||||||
|
value = value.startsWith(1, value.length - 1)
|
||||||
|
}
|
||||||
|
vars[key] = value
|
||||||
|
}
|
||||||
|
return vars
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
|
||||||
|
async setPipEnv (list) {
|
||||||
|
const cmds = []
|
||||||
|
for (const item of list) {
|
||||||
|
if (item.value != null) {
|
||||||
|
cmds.push(`pip config set global.${item.key} ${item.value}`)
|
||||||
|
} else {
|
||||||
|
cmds.push(`pip config unset global.${item.key}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const ret = await shell.exec(cmds, { type: 'cmd' })
|
||||||
|
return ret
|
||||||
|
},
|
||||||
|
|
||||||
|
async unsetPipEnv (list) {
|
||||||
|
const cmds = []
|
||||||
|
for (const item of list) {
|
||||||
|
cmds.push(`pip config unset global.${item} `)
|
||||||
|
}
|
||||||
|
const ret = await shell.exec(cmds, { type: 'cmd' })
|
||||||
|
return ret
|
||||||
|
},
|
||||||
|
|
||||||
|
async setRegistry ({ registry }) {
|
||||||
|
await api.setPipEnv([{ key: 'index-url', value: registry }])
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
|
||||||
|
async setTrustedHost (host) {
|
||||||
|
await api.setPipEnv([{ key: 'trusted-host', value: host }])
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
|
||||||
|
async setProxy (ip, port) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async unsetProxy () {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return api
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
key: 'pip',
|
||||||
|
config: pipConfig,
|
||||||
|
status: {
|
||||||
|
enabled: false
|
||||||
|
},
|
||||||
|
plugin: PipPlugin
|
||||||
|
}
|
Loading…
Reference in new issue