mirror of
https://github.com/MeexReay/poshlostios.git
synced 2025-06-24 02:22:58 +03:00
rewrite ppm
This commit is contained in:
parent
c2ba9da433
commit
6dad6847e3
@ -3,6 +3,7 @@
|
||||
"version": "0.1.2",
|
||||
"description": "Mega eXtreme Window Manager",
|
||||
"author": "MeexReay",
|
||||
"apps": [ "zcom.js", "startz.js", "zterm.js", "poki.js", "zhelp.js" ],
|
||||
"configs": [ "poki.json" ]
|
||||
"apps": [ "zcom.js", "startz.js", "zhelp.js" ],
|
||||
"configs": [],
|
||||
"depends": [ "poki", "zterm" ]
|
||||
}
|
||||
|
8
app/poki/package.json
Normal file
8
app/poki/package.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "poki",
|
||||
"version": "0.1.0",
|
||||
"description": "Poki desktop deck",
|
||||
"author": "MeexReay",
|
||||
"apps": [ "poki.js" ],
|
||||
"configs": [ "poki.json" ]
|
||||
}
|
@ -1,10 +1,4 @@
|
||||
[
|
||||
{
|
||||
"id": "zhelp",
|
||||
"title": "help page",
|
||||
"icon": "app/mxwm/zhelp.png",
|
||||
"script": ["/app/zhelp.js"]
|
||||
},
|
||||
{
|
||||
"id": "zterm",
|
||||
"title": "zterm - terminal emulator",
|
@ -25,7 +25,7 @@ async function processCommand(command, args) {
|
||||
await writeStdout("\nСтатус код: "+code+"\n")
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e.toString())
|
||||
console.log(e)
|
||||
await writeStdout("Не запустилася\n")
|
||||
}
|
||||
} else {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ppm",
|
||||
"version": "0.1.6",
|
||||
"version": "0.1.7",
|
||||
"description": "Poshliy Package Manager",
|
||||
"author": "MeexReay",
|
||||
"apps": [ "ppm.js" ],
|
||||
|
175
app/ppm/ppm.js
175
app/ppm/ppm.js
@ -4,20 +4,102 @@
|
||||
|
||||
*/
|
||||
|
||||
async function main(args) {
|
||||
if (args.length == 3 && "iurs".includes(args[1])) {
|
||||
let package = args[2]
|
||||
let config = JSON.parse(readFile("/config/ppm.json"))
|
||||
|
||||
if (args[1] == "i") {
|
||||
let config = JSON.parse(readFile("/config/ppm.json"))
|
||||
async function remove(name) {
|
||||
let pkg = await getInstalledPackage(name)
|
||||
if (pkg != null) {
|
||||
await removePackage(name)
|
||||
|
||||
await writeStdout(`Пакет ${pkg['name']} удален и все его конфиги тоже\n`)
|
||||
if ("depends" in pkg) {
|
||||
await writeStdout(`Вот пакеты от которых он зависил которые не удалены: \n${pkg["depends"]}\n`)
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
await writeStdout("Биспокойся произошла ошибко\n")
|
||||
return 1
|
||||
}
|
||||
|
||||
async function listInstalled() {
|
||||
return (await listPackages())
|
||||
}
|
||||
|
||||
async function listOutdated() {
|
||||
let packages = []
|
||||
|
||||
for (const pkg of (await listPackages())) {
|
||||
for (const repo of config["repositories"]) {
|
||||
let fetched = await fetchPackage(repo+"/"+pkg["name"])
|
||||
if (fetched != null) {
|
||||
if (fetched["version"] == pkg["version"]) {
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} уже на последней версии\n`)
|
||||
break
|
||||
}
|
||||
|
||||
packages.push(pkg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return packages
|
||||
}
|
||||
|
||||
async function update(name) {
|
||||
for (const repo of config["repositories"]) {
|
||||
let status = await updatePackage(name, repo+"/"+name)
|
||||
|
||||
if (status == 0) {
|
||||
let pkg = await getInstalledPackage(name)
|
||||
|
||||
await installDepends(pkg)
|
||||
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} обновлен\n`)
|
||||
return 0
|
||||
} else if (status == 1) {
|
||||
await writeStdout("чувак пакет не найден\n")
|
||||
return 1
|
||||
}
|
||||
}
|
||||
await writeStdout("чувак пакет не может быть обновлен\n")
|
||||
return 1
|
||||
}
|
||||
|
||||
async function installDepends(pkg) {
|
||||
if ("depends" in pkg) {
|
||||
for (const dep of pkg.depends) {
|
||||
let status = await updateOrInstall(dep)
|
||||
|
||||
if (status != 0) {
|
||||
return status
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
async function updateOrInstall(name) {
|
||||
if (await getInstalledPackage(name) == null) {
|
||||
return await install(name)
|
||||
} else {
|
||||
return await update(name)
|
||||
}
|
||||
}
|
||||
|
||||
async function install(name) {
|
||||
for (const repo of config["repositories"]) {
|
||||
// await writeStdout(`Фетчим ${package} на репозитории ${repo}\n`)
|
||||
|
||||
let status = await installPackage(repo+"/"+package)
|
||||
let status = await installPackage(repo+"/"+name)
|
||||
|
||||
if (status == 0) {
|
||||
let pkg = await getInstalledPackage(package)
|
||||
let pkg = await getInstalledPackage(name)
|
||||
|
||||
await installDepends(pkg)
|
||||
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} установлен\n`)
|
||||
return 0
|
||||
} else if (status == 1) {
|
||||
@ -25,83 +107,50 @@ async function main(args) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
async function main(args) {
|
||||
if (args.length == 3 && "iurs".includes(args[1])) {
|
||||
let package = args[2]
|
||||
|
||||
if (args[1] == "i") {
|
||||
return await install(package)
|
||||
} else if (args[1] == "u") {
|
||||
let config = JSON.parse(readFile("/config/ppm.json"))
|
||||
|
||||
for (const repo of config["repositories"]) {
|
||||
let status = await updatePackage(package, repo+"/"+package)
|
||||
|
||||
if (status == 0) {
|
||||
let pkg = await getInstalledPackage(package)
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} обновлен\n`)
|
||||
return 0
|
||||
} else if (status == 1) {
|
||||
await writeStdout("Пакет не найден ты его установи сначала чел\n")
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
await writeStdout("обнова не прошла успешна\n")
|
||||
return 1
|
||||
return await update(package)
|
||||
} else if (args[1] == "r") {
|
||||
if (await removePackage(package)) {
|
||||
await writeStdout(`Пакет ${package} удален\n`)
|
||||
} else {
|
||||
await writeStdout("Биспокойся произошла ошибко\n")
|
||||
return 1
|
||||
}
|
||||
return await remove(package)
|
||||
} else if (args[1] == "s") {
|
||||
let pkg = await getInstalledPackage(package)
|
||||
for (const [key, value] of Object.entries(pkg)) {
|
||||
await writeStdout(key.charAt(0).toUpperCase()+key.slice(1)+": "+value+"\n")
|
||||
}
|
||||
return 0
|
||||
}
|
||||
} else if (args.length == 2 && args[1] == "l") {
|
||||
await writeStdout("ваши покеты:\n")
|
||||
for (const package of (await listPackages())) {
|
||||
await writeStdout("- "+package["name"]+"-"+package["version"]+"\n")
|
||||
}
|
||||
return 0
|
||||
} else if (args.length == 2 && args[1] == "a") {
|
||||
let config = JSON.parse(readFile("/config/ppm.json"))
|
||||
for (let pkg of (await listOutdated())) {
|
||||
let status = await update(pkg["name"])
|
||||
|
||||
for (const package of (await listPackages())) {
|
||||
for (const repo of config["repositories"]) {
|
||||
// await writeStdout(`Фетчим ${package["name"]} на репозитории ${repo}\n`)
|
||||
|
||||
let fetched = await fetchPackage(repo+"/"+package["name"])
|
||||
if (fetched != null) {
|
||||
if (fetched["version"] == package["version"]) {
|
||||
await writeStdout(`Пакет ${package['name']}-${package['version']} уже на последней версии\n`)
|
||||
break
|
||||
}
|
||||
|
||||
let status = await updatePackage(package["name"], repo+"/"+package["name"])
|
||||
|
||||
if (status == 0) {
|
||||
let pkg = await getInstalledPackage(package["name"])
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} обновлен\n`)
|
||||
break
|
||||
} else if (status == 1) {
|
||||
break
|
||||
}
|
||||
}
|
||||
if (status != 0) {
|
||||
return status
|
||||
}
|
||||
}
|
||||
|
||||
await writeStdout("Обнова прошла успешна\n")
|
||||
return 0
|
||||
} else if (args.length == 2 && args[1] == "A") {
|
||||
let config = JSON.parse(readFile("/config/ppm.json"))
|
||||
for (let pkg of (await listPackages())) {
|
||||
let status = await update(pkg["name"])
|
||||
|
||||
for (const package of (await listPackages())) {
|
||||
for (const repo of config["repositories"]) {
|
||||
let status = await updatePackage(package["name"], repo+"/"+package["name"])
|
||||
|
||||
if (status == 0) {
|
||||
let pkg = await getInstalledPackage(package["name"])
|
||||
await writeStdout(`Пакет ${pkg['name']}-${pkg['version']} обновлен\n`)
|
||||
break
|
||||
}
|
||||
if (status != 0) {
|
||||
return status
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,5 +167,5 @@ async function main(args) {
|
||||
await writeStdout(" ppm A - обновить все пакеты принудительно\n")
|
||||
}
|
||||
|
||||
return 0
|
||||
return 1
|
||||
}
|
8
app/zterm/package.json
Normal file
8
app/zterm/package.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "zterm",
|
||||
"version": "0.1.0",
|
||||
"description": "Zcom Terminal Emulator",
|
||||
"author": "MeexReay",
|
||||
"apps": [ "zterm.js" ],
|
||||
"configs": [ ]
|
||||
}
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Loading…
x
Reference in New Issue
Block a user