3.3 KiB
Командная строка из браузера
Идея состоит в том, чтобы создать браузер, который сможет превращать api интерфес в интерфейс командной строки.
Схема
pwact <tool.dns> <api_header> <api_methods>
А так же установить локально
pwact <tool.dns> install
Чтобы это заработало, необходимо использовать .well-know
URL
{
"api": "https://codeberg.org/api/v1",
"bin": {
"<platform>": [{
"<architecture>": "<path_for_file"
}]
}
"settings": {
"aliases": [{
"alias": "i",
"type": "path",
"path": "<path>"
}]
}
}
Например:
{
"api": "https://codeberg.org/api/v1",
"settings": {
"aliases": [
{
"alias": "i",
"type": "path",
"path": "/repos/{owner}/{repo}/issues"
},
{
"alias": "create",
"type": "method",
"method": "POST"
},
{
"alias": "tea",
"type": "bin",
"bin": "tea"
}
]
},
"bin": {
"linux": [{"x86": "https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz"}]
}
}
Метод REST API - https://codeberg.org/api/v1/repos/{owner}/{repo}/issues
превратиться в следующий код
По умолчанию get запрос
pwact api codeberg.org repos issues [owner] [repo]
Если нужно отправить post запрос, то
pwact api codeberg.org post --auth repos issues [owner] [repo]
токены хранятся в отдельной базе данных, независимо от репозитория.
Методы перед pwact можно переопределить
pwact api codeberg.org create --auth repos issues [owner] [repo]
Установить и запустить инструмент в изолированном контексте можно
pwact api codeberg.org install
Все те же методы работают с бинарниками.
pwact bin codeberg.org install
В настройка самого инструмента может быть настройка, которая определить по умолчанию запускать бинарники или api. Так же можно не писать api
или bin
если в манифесте указан только один параметр
По умолчанию все запросы в clearnet иду по https
, tor и i2p - http
.
Но можно указать и конкретный протокол
pwact bin "http://codeberg.org" install
В случае выполнения команды по установки бинарников, даже если они не указаны в manifest на сайте, то могут быть скачаны с репозиториия pkgx
Устанавливаются в случае пользователя в директорию ~/.local/bin
, в случае root /usr/local/bin/