From 417bc66289f82e64812baeb9df2e13c4e3797bbe Mon Sep 17 00:00:00 2001 From: zxp19821005 Date: Tue, 3 Feb 2026 11:43:37 +0800 Subject: [PATCH] update to 1.0.17 --- .SRCINFO | 21 ++++++++ PKGBUILD | 103 ++++++++++++++++++++++++++++++++++++++ bintelai-ssh-assistant.sh | 39 +++++++++++++++ 3 files changed, 163 insertions(+) create mode 100644 .SRCINFO create mode 100644 PKGBUILD create mode 100644 bintelai-ssh-assistant.sh diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..f3e0a06d01b9 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,21 @@ +pkgbase = bintelai-ssh-assistant + pkgdesc = Cyberpunk style with integrated AI modernized Web SSH client side.(Use system-wide electron)集成 AI 的赛博朋克风格现代化 Web SSH 客户端 + pkgver = 1.0.17 + pkgrel = 1 + url = https://github.com/bintelAI/aissh + arch = any + license = MIT + makedepends = npm + makedepends = nvm + makedepends = git + makedepends = curl + makedepends = gendesk + makedepends = pnpm + makedepends = jq + depends = electron39 + source = bintelai-ssh-assistant-1.0.17::git+https://github.com/bintelAI/aissh#tag=v1.0.17 + source = bintelai-ssh-assistant.sh + sha256sums = ca6c767444773d0c242f964dbe2ba926dad5b29e8e130e96a6e4350b50e38f18 + sha256sums = 31ad33b633744f5361abd964be306cea53ae1050e760c787115f7eca60045ae6 + +pkgname = bintelai-ssh-assistant diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..d0e5ce36fa0b --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,103 @@ +# Maintainer: zxp19821005 +pkgname=bintelai-ssh-assistant +_pkgname='Gemini SSH 助手' +pkgver=1.0.17 +_electronversion=39 +_nodeversion=22 +pkgrel=1 +pkgdesc="Cyberpunk style with integrated AI modernized Web SSH client side.(Use system-wide electron)集成 AI 的赛博朋克风格现代化 Web SSH 客户端" +arch=('any') +url="https://github.com/bintelAI/aissh" +license=('MIT') +depends=( + "electron${_electronversion}" +) +makedepends=( + 'npm' + 'nvm' + 'git' + 'curl' + 'gendesk' + 'pnpm' + 'jq' +) +source=( + "${pkgname}-${pkgver}::git+${url}#tag=v${pkgver}" + "${pkgname}.sh" +) +sha256sums=('ca6c767444773d0c242f964dbe2ba926dad5b29e8e130e96a6e4350b50e38f18' + '31ad33b633744f5361abd964be306cea53ae1050e760c787115f7eca60045ae6') +_ensure_local_nvm() { + local NVM_DIR="${srcdir}/.nvm" + source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]] + nvm install "${_nodeversion}" + nvm use "${_nodeversion}" +} +_get_electron_version() { + _elec_ver=$(jq -r '.devDependencies["electron"] // .dependencies["electron"]' "${srcdir}/${pkgname}-${pkgver}/package.json" | tr -d '^') + _main_ver=$(echo "${_elec_ver}" | cut -d. -f1) + echo -e "The electron version is: \033[1;31m${_main_ver}\033[0m" +} +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + _get_electron_version + sed -i -e " + s/@electronversion@/${_electronversion}/g + s/@appname@/${pkgname}/g + s/@runname@/app.asar/g + s/@cfgdirname@/${_pkgname}/g + s/@options@/env ELECTRON_OZONE_PLATFORM_HINT=auto/g + " "${srcdir}/${pkgname}.sh" + gendesk -q -f -n \ + --pkgname="${pkgname}" \ + --pkgdesc="${pkgdesc}" \ + --categories="Utility" \ + --name="${_pkgname}" \ + --exec="${pkgname} %U" + export ELECTRON_SKIP_BINARY_DOWNLOAD=1 + export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')" + HOME="${srcdir}/.electron-gyp" + { + echo -e '\n' + #echo 'build_from_source=true' + echo 'link-workspace-packages=true' + echo 'fetch-retry-maxtimeout=10000' + echo "cache-dir=${srcdir}/.pnpm_cache" + echo "store-dir=${srcdir}/.pnpm_store" + echo "virtual-store-dir=${srcdir}/.pnpm_store" + echo "shamefully-hoist=true" + echo "virtual-store-dir-max-length=80" + echo "node-linker=hoisted" + echo "network-concurrency=32" + } >> .npmrc + if [[ "$(curl -s ipinfo.io/country)" == *"CN"* ]]; then + { + echo 'registry=https://registry.npmmirror.com' + echo 'electron_mirror=https://cdn.npmmirror.com/binaries/electron/' + echo 'electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/' + } >> .npmrc + cp .npmrc back/.npmrc + fi + _ensure_local_nvm + sed -i "s/\"electron\": \"[^\"]*\"/\"electron\": \"${SYSTEM_ELECTRON_VERSION}\"/g" package.json + find electron -type f -exec sed -i "s/process.resourcesPath/\'\/usr\/lib\/${pkgname%-git}\'/g" {} + + NODE_ENV=development pnpm install + cd "${srcdir}/${pkgname}-${pkgver}/back" + NODE_ENV=development pnpm install +} +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + _ensure_local_nvm + local electronDist="/usr/lib/electron${_electronversion}" + NODE_ENV=production pnpm run build:back + NODE_ENV=production pnpm -c vite build --config vite.config.electron.ts + NODE_ENV=production pnpm -c exec "electron-builder --linux dir -c.electronDist=${electronDist}" +} +package() { + install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}" + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/release/linux-"*/resources/app.asar -t "${pkgdir}/usr/lib/${pkgname}" + cp -Pr --no-preserve=ownership "${srcdir}/${pkgname}-${pkgver}/release/linux-"*/resources/backend "${pkgdir}/usr/lib/${pkgname}" + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/src-tauri/icons/icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png" + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications" + #install -Dm644 "${srcdir}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" +} diff --git a/bintelai-ssh-assistant.sh b/bintelai-ssh-assistant.sh new file mode 100644 index 000000000000..753d12d513f0 --- /dev/null +++ b/bintelai-ssh-assistant.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -e +_APPDIR="/usr/lib/@appname@" +_RUNNAME="${_APPDIR}/@runname@" +_OPTIONS="@options@" +export PATH="${_APPDIR}:${PATH}" +export LD_LIBRARY_PATH="${_APPDIR}/swiftshader:${_APPDIR}/lib:${LD_LIBRARY_PATH}" +export ELECTRON_IS_DEV=0 +export ELECTRON_FORCE_IS_PACKAGED=true +export ELECTRON_DISABLE_SECURITY_WARNINGS=true +export NODE_ENV=production +export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +_FLAGS_FILE="${XDG_CONFIG_HOME}/@appname@-flags.conf" +declare -a flags +if [[ -f "${_FLAGS_FILE}" ]]; then + mapfile -t < "${_FLAGS_FILE}" +fi +for line in "${MAPFILE[@]}"; do + if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then + flags+=("${line}") + fi +done +_WAYLAND_OPTION=false +for arg in "$@"; do + if [[ "${arg}" == "--wayland" ]]; then + _WAYLAND_OPTION=true + break + fi +done +if [[ "${_WAYLAND_OPTION}" == true ]]; then + echo "Forcing Wayland" + flags+=("--enable-features=UseOzonePlatform,WaylandWindowDecorations,VaapiVideoDecodeLinuxGL" "--ozone-platform=wayland") +fi +cd "${_APPDIR}" +if [[ "${EUID}" -ne 0 ]] || [[ "${ELECTRON_RUN_AS_NODE}" ]]; then + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" "${flags[@]}" "$@" || exit $? +else + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" --no-sandbox "${flags[@]}" "$@" || exit $? +fi \ No newline at end of file