feat(plugins): ping no catálogo, ausente não interrompe o run
A entrada fica no mesmo registro. Sem o build nesta máquina o comando segue só com os plugins que existem. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
beaf9190c9
commit
61753c421a
3 files changed
+32
-5
No files matched your search
@@ -13,6 +13,13 @@
|
|||||||
"build": "ant",
|
"build": "ant",
|
||||||
"jar": "dist/pitiupi.screenCast.jar",
|
"jar": "dist/pitiupi.screenCast.jar",
|
||||||
"menuCategory": "Streaming"
|
"menuCategory": "Streaming"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ping",
|
||||||
|
"dir": "plugins/ping",
|
||||||
|
"build": "ant",
|
||||||
|
"jar": "dist/pitiupi.ping.jar",
|
||||||
|
"menuCategory": "Social"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+1
-1
@@ -25,7 +25,7 @@ del /q "%CD%\.pitiupi\plugins\*.jar" 2>nul
|
|||||||
|
|
||||||
set "PITIUPI_REPO=%CD%"
|
set "PITIUPI_REPO=%CD%"
|
||||||
set "PITIUPI_PLUGINS=%CD%\.pitiupi\plugins"
|
set "PITIUPI_PLUGINS=%CD%\.pitiupi\plugins"
|
||||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$repo = $env:PITIUPI_REPO; $dest = $env:PITIUPI_PLUGINS; $reg = Get-Content -Raw (Join-Path $repo 'plugins.registry.json') | ConvertFrom-Json; foreach ($p in $reg.plugins) { $dir = Join-Path $repo ($p.dir -replace '/','\'); if ($p.build -ne 'ant') { Write-Error ('build nao suportado neste prompt: ' + $p.build); exit 1 }; & ant -f (Join-Path $dir 'build.xml') jar; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }; $src = Join-Path $dir ($p.jar -replace '/','\'); if (-not (Test-Path -LiteralPath $src)) { Write-Error ('JAR ausente: ' + $src); exit 1 }; Copy-Item -LiteralPath $src -Destination (Join-Path $dest ($p.id + '.jar')) -Force }"
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$repo = $env:PITIUPI_REPO; $dest = $env:PITIUPI_PLUGINS; $reg = Get-Content -Raw (Join-Path $repo 'plugins.registry.json') | ConvertFrom-Json; foreach ($p in @($reg.plugins)) { $dir = Join-Path $repo ($p.dir -replace '/','\'); $marker = Join-Path $dir 'build.xml'; if ($p.build -eq 'make') { $marker = Join-Path $dir 'Makefile' }; if (-not (Test-Path -LiteralPath $marker)) { Write-Host ('Plugin ' + $p.id + ' ausente nesta maquina; nao sera carregado.'); continue }; if ($p.build -ne 'ant') { Write-Error ('build nao suportado neste prompt: ' + $p.build); exit 1 }; & ant -f (Join-Path $dir 'build.xml') jar; if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }; $src = Join-Path $dir ($p.jar -replace '/','\'); if (-not (Test-Path -LiteralPath $src)) { Write-Error ('JAR ausente: ' + $src); exit 1 }; Copy-Item -LiteralPath $src -Destination (Join-Path $dest ($p.id + '.jar')) -Force }"
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
|
|
||||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0lib\launch-windows.ps1" -PitiupiHome "%CD%\.pitiupi" -Jar "%CD%\pitiupi\dist\pitiupi.jar"
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0lib\launch-windows.ps1" -PitiupiHome "%CD%\.pitiupi" -Jar "%CD%\pitiupi\dist\pitiupi.jar"
|
||||||
|
|||||||
+24
-4
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Build, instala plugins em PITIUPI_HOME/plugins e executa o núcleo (catálogo: plugins.registry.json).
|
# Build, instala plugins em PITIUPI_HOME/plugins e executa o núcleo (catálogo: plugins.registry.json).
|
||||||
|
# Plugin do catálogo sem build.xml ou Makefile nesta máquina é ignorado.
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
@@ -49,7 +50,7 @@ repo = Path(sys.argv[2])
|
|||||||
mode = sys.argv[3]
|
mode = sys.argv[3]
|
||||||
|
|
||||||
data = json.loads(registry_path.read_text(encoding="utf-8"))
|
data = json.loads(registry_path.read_text(encoding="utf-8"))
|
||||||
plugins = data.get("plugins", [])
|
plugins = list(data.get("plugins", []))
|
||||||
|
|
||||||
def by_id(pid):
|
def by_id(pid):
|
||||||
for p in plugins:
|
for p in plugins:
|
||||||
@@ -179,17 +180,25 @@ build_core() {
|
|||||||
|
|
||||||
build_one_plugin() {
|
build_one_plugin() {
|
||||||
local id="$1"
|
local id="$1"
|
||||||
local dir build_cmd
|
local dir build_cmd marker
|
||||||
dir="$(registry_python field "$id" dir)"
|
dir="$(registry_python field "$id" dir)"
|
||||||
build_cmd="$(registry_python field "$id" build)"
|
build_cmd="$(registry_python field "$id" build)"
|
||||||
case "$build_cmd" in
|
case "$build_cmd" in
|
||||||
ant) (cd "${REPO_ROOT}/${dir}" && ant jar) ;;
|
ant) marker="${REPO_ROOT}/${dir}/build.xml" ;;
|
||||||
make) (cd "${REPO_ROOT}/${dir}" && make) ;;
|
make) marker="${REPO_ROOT}/${dir}/Makefile" ;;
|
||||||
*)
|
*)
|
||||||
printf 'ERRO: build desconhecido para %s: %s\n' "$id" "$build_cmd" >&2
|
printf 'ERRO: build desconhecido para %s: %s\n' "$id" "$build_cmd" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
if [[ ! -f "${marker}" ]]; then
|
||||||
|
printf 'Plugin %s ausente nesta máquina; não será carregado.\n' "$id"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
case "$build_cmd" in
|
||||||
|
ant) (cd "${REPO_ROOT}/${dir}" && ant jar) ;;
|
||||||
|
make) (cd "${REPO_ROOT}/${dir}" && make) ;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
build_plugins_from_selection() {
|
build_plugins_from_selection() {
|
||||||
@@ -232,6 +241,17 @@ link_plugins_from_selection() {
|
|||||||
link_name="${id}.jar"
|
link_name="${id}.jar"
|
||||||
src_abs="${REPO_ROOT}/${dir}/${jar_rel}"
|
src_abs="${REPO_ROOT}/${dir}/${jar_rel}"
|
||||||
if [[ ! -f "${src_abs}" ]]; then
|
if [[ ! -f "${src_abs}" ]]; then
|
||||||
|
local marker=""
|
||||||
|
local build_cmd
|
||||||
|
build_cmd="$(registry_python field "$id" build)"
|
||||||
|
case "$build_cmd" in
|
||||||
|
ant) marker="${REPO_ROOT}/${dir}/build.xml" ;;
|
||||||
|
make) marker="${REPO_ROOT}/${dir}/Makefile" ;;
|
||||||
|
esac
|
||||||
|
if [[ -z "${marker}" || ! -f "${marker}" ]]; then
|
||||||
|
printf 'Plugin %s ausente nesta máquina; não será carregado.\n' "$id"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
printf 'ERRO: JAR ausente: %s\n' "${src_abs}" >&2
|
printf 'ERRO: JAR ausente: %s\n' "${src_abs}" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user