XPipe
Paquet d’installation silencieuse pour XPipe
20.2-1
Les paquets PREPROD sont des paquets construits via LUTI.
Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.
- package: tis-xpipe
- name: XPipe
- version: 20.2-1
- maintainer: Jordan ARNAUD
- target_os: linux
- architecture: x64
- signature_date:
- size: 197.54 Mo
- homepage : https://xpipe.io/
package : tis-xpipe
version : 20.2-1
architecture : x64
section : base
priority : optional
name : XPipe
categories :
maintainer : Jordan ARNAUD
description : Hub for centralized connections (SSH, PowerShell, Dockers, etc.) and remote system administration
depends :
conflicts :
maturity : PREPROD
locale :
target_os : linux
min_wapt_version :
sources :
installed_size :
impacted_process :
description_fr : Hub pour centraliser des connexion (SSH, PowerShell, Dockers, etc...) et administrer des système à distance
description_pl : Hub do centralizacji połączeń (SSH, PowerShell, Dockers itp.) i administrowania zdalnymi systemami
description_de : Hub, um Verbindungen zu zentralisieren (SSH, PowerShell, Dockers, etc.) und Systeme aus der Ferne zu verwalten
description_es : Hub para centralizar conexiones (SSH, PowerShell, Dockers, etc.) y administrar sistemas remotos
description_pt : Hub para centralizar ligações (SSH, PowerShell, Dockers, etc.) e administrar sistemas remotos
description_it : Hub per la centralizzazione delle connessioni (SSH, PowerShell, Docker, ecc.) e l'amministrazione di sistemi remoti
description_nl : Hub voor het centraliseren van verbindingen (SSH, PowerShell, Dockers, enz.) en het beheren van externe systemen
description_ru : Концентратор для централизации подключений (SSH, PowerShell, Dockers и т. д.) и администрирования удаленных систем
audit_schedule :
editor :
keywords :
licence :
homepage : https://xpipe.io/
package_uuid : d1679cdf-d7aa-4157-acb3-d807605a1451
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 1922a912047a3e311d8e87c77ea4a4fbce9f31baf03f32d178c14d7898948d86
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2026-01-04T04:23:04.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : B8u4ZOr/tUQl0RyHBvYRsKgN6I3zj6LUei+Bjty/ARHNfCAKOrbf6EpSUaG0w5k0ye6nRubtQXF604lUvVAJa+QU4KM2hkxDkU4vGzPc5ez3UZQ3JlJ+dnw/NznbiEhW9VZGVnAGQjsbrRgDkTlmj6hazidznB/HlzMZmZRF7dYXWYMmed5tfgUxMX1jU08XNB8Pc+7SHIF3IOjY3WFlXEmmXC/yJT8aQv/qNeFlGYqt4LKYUr/YQ7aOId+osPfNEUqstQEtuIUTicDLmLVv1RIDjzVNOHJknx2Y9C54JmcMmpnz5k6jyQFFv+2qym/EIdWYuAwa7fhQYvNhROBNkg==
# -*- coding: utf-8 -*-
##################################################
# This file is part of WAPT Enterprise
# All right reserved, (c) Tranquil IT Systems 2024
# For more information please refer to
# https://wapt.tranquil.it/store/licences.html
##################################################
from setuphelpers import *
from iniparse import ConfigParser
import os
def install():
install_dir = makepath('/','opt',control.package.split('-',1)[1])
appimage = glob.glob("*.AppImage")[0]
install_appimage(appimage,install_dir)
def uninstall():
install_dir = makepath('/','opt',control.package.split('-',1)[1])
uninstall_appimage(install_dir)
def install_appimage(appimage,install_dir,binaliasname=None):
run('chmod a+x ./' + appimage)
if isdir(install_dir):
uninstall_appimage(install_dir)
mkdirs(install_dir)
name_appimage = appimage.split('/')[-1]
filecopyto(appimage, makepath(install_dir, name_appimage))
run('"./%s" --appimage-extract' % appimage)
for desktop in glob.glob(makepath('squashfs-root','*.desktop')):
desktop_cp = ConfigParser()
desktop_cp.optionxform = str
desktop_file = open(desktop, encoding="utf-8")
desktop_cp.readfp(desktop_file)
bin_path = desktop_cp.get('Desktop Entry',"Exec")
newbin_path = install_dir + '/' + name_appimage
if ' %' in bin_path:
newbin_path = newbin_path + ' %' + bin_path.split(' %',1)[1]
icon_path = desktop_cp.get('Desktop Entry',"Icon")
srcicon = makepath('squashfs-root',icon_path +'.svg')
if not isfile(srcicon):
srcicon = makepath('squashfs-root',icon_path +'.png')
if not isfile(srcicon):
lstglob = glob.glob(makepath('squashfs-root','*.svg'))
if lstglob :
srcicon=lstglob[0]
if not isfile(srcicon):
lstglob = glob.glob(makepath('squashfs-root','*.png'))
if lstglob :
srcicon=lstglob[0]
else:
srcicon = None
if srcicon:
new_icon = install_dir + '/' + srcicon.split('/')[-1]
filecopyto(srcicon,new_icon)
desktop_cp.set('Desktop Entry',"Icon",new_icon)
desktop_cp.set('Desktop Entry',"Exec",newbin_path)
with open(desktop, 'w', encoding="utf-8") as f:
desktop_cp.write(f)
pathdesk = makepath(install_dir,desktop.split('/')[-1])
filecopyto(desktop, pathdesk)
run('chown root:root "%s" ' % pathdesk)
for f in glob.glob(makepath(install_dir,'*.desktop')):
run('ln -sf "%s" "/usr/share/applications/%s"' % (f,f.split('/')[-1]))
if binaliasname :
run(f"ln -sf {install_dir}/{name_appimage} /usr/bin/{binaliasname}")
remove_tree('squashfs-root')
def uninstall_appimage(install_dir):
if not glob.glob(makepath(install_dir,'*.desktop')):
error('.desktop not found')
for f in glob.glob(makepath(install_dir,'*.desktop')):
deskfile = f.split('/')[-1]
system_desktop = makepath("/","usr","share","applications",deskfile)
if isfile(system_desktop):
remove_file(system_desktop)
remove_tree(install_dir)
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import json
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
def update_package():
result = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
git_repo = "xpipe-io/xpipe"
url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
# Getting latest version information from official sources
print("API used is: %s" % url_api)
json_load = json.loads(wgets(url_api, proxies=proxies))
for download in json_load["assets"]:
if download["browser_download_url"].endswith('x86_64.AppImage'):
url_dl = download["browser_download_url"]
version = json_load["name"]
filename = download["name"]
break
if not isfile(filename):
package_updated = True
print(f"Downloading " + filename)
wget(url_dl,filename,proxies=proxies)
#nettoyer les fichiers temporaires
for f in glob.glob('*.AppImage'):
if f != filename:
remove_file(f)
control.set_software_version(version)
control.save_control_to_wapt()
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
e933e297b5c5bb3547d7478b2d38148c5851ae048653658e80ab79c77ae0408c : WAPT/control
1922a912047a3e311d8e87c77ea4a4fbce9f31baf03f32d178c14d7898948d86 : WAPT/icon.png
a2b2e32d94fede9cfe3992254e17e23472f650fc345bee6f25f746eef5efa4dd : luti.json
223fa6ca0b4ed15f7d1a2e29893619511e043c7907d145e8c8991405677bb4e1 : setup.py
197b5afc8eb7ed14f7d8e99e0df5f8258882660768e14183657a77edf1da5741 : update_package.py
a4a125fc626a2265aa1a8683c637e943181002f33c951f3941e2f55217430f6c : xpipe-portable-linux-x86_64.AppImage