- package: tis-cmder
- name: Cmder
- version: 1.3.21-38
- categories: Utilities
- maintainer: Tranquil IT,WAPT Team,Simon FONTENEAU,Jimmy PELÉ
- editor: Samuel Vasko
- licence: opensource_free,cpe:/a:mit:x11_license,wapt_public
- locale: all
- target_os: windows
- impacted_process: Cmder,ConEmu,ConEmu64
- architecture: all
- signature_date:
- size: 131.15 Mo
- installed_size: 358.42 Mo
- homepage : https://cmder.app/
package : tis-cmder
version : 1.3.21-38
architecture : all
section : base
priority : optional
name : Cmder
categories : Utilities
maintainer : Tranquil IT,WAPT Team,Simon FONTENEAU,Jimmy PELÉ
description : Cmder is a software package created out of pure frustration over absence of usable console emulator on Windows. It is based on ConEmu with major config overhaul, comes with a Monokai color scheme, amazing clink (further enhanced by clink-completions) and a custom prompt layout
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.1
sources : https://github.com/cmderdev/cmder/releases/
installed_size : 358423327
impacted_process : Cmder,ConEmu,ConEmu64
description_fr : Cmder est un logiciel créé par pure frustration face à l'absence d'émulateur de console utilisable sous Windows. Il est basé sur ConEmu avec une refonte majeure de la configuration, vient avec un schéma de couleurs Monokai, un clink étonnant (encore amélioré par les complétions de clink) et une disposition personnalisée du prompt
description_pl : Cmder to pakiet oprogramowania stworzony z czystej frustracji z powodu braku użytecznego emulatora konsoli w systemie Windows. Opiera się na ConEmu z gruntowną zmianą konfiguracji, posiada schemat kolorów Monokai, niesamowity clink (dodatkowo wzmocniony przez clink-completions) i niestandardowy układ podpowiedzi
description_de : Cmder ist ein Softwarepaket, das aus purer Frustration über das Fehlen eines brauchbaren Konsolenemulators unter Windows entstanden ist. Es basiert auf ConEmu mit großer Überarbeitung der Konfiguration, kommt mit einem Monokai-Farbschema, erstaunliche klirren (weiter verbessert durch klirren-Vervollständigungen) und eine benutzerdefinierte Eingabeaufforderung Layout
description_es : Cmder es un paquete de software creado por pura frustración por la ausencia de un emulador de consola utilizable en Windows. Está basado en ConEmu con una importante revisión de la configuración, viene con un esquema de color Monokai, clink increíble (mejorado aún más por clink-completions) y un diseño personalizado prompt
description_pt : O Cmder é um pacote de software criado por pura frustração com a ausência de um emulador de consola utilizável no Windows. Ele é baseado no ConEmu com uma grande revisão de configuração, vem com um esquema de cores Monokai, clink incrível (melhorado ainda mais por clink-completions) e um layout de prompt personalizado
description_it : Cmder è un pacchetto software creato dalla pura frustrazione per l'assenza di un emulatore di console utilizzabile su Windows. È basato su ConEmu con un'importante revisione della configurazione, è dotato di uno schema di colori Monokai, di un incredibile clink (ulteriormente migliorato dai clink-completi) e di un layout personalizzato del prompt
description_nl : Cmder is een softwarepakket gemaakt uit pure frustratie over het ontbreken van een bruikbare console emulator op Windows. Het is gebaseerd op ConEmu met een grote configuratie revisie, wordt geleverd met een Monokai kleurenschema, verbazingwekkende clink (verder verbeterd door clink-completies) en een aangepaste prompt lay-out
description_ru : Cmder - это программный пакет, созданный из чистого разочарования по поводу отсутствия пригодного для использования эмулятора консоли в Windows. Он основан на ConEmu с серьезной переработкой конфигурации, поставляется с цветовой схемой Monokai, удивительным клинчем (еще более усиленным клинк-комплитами) и пользовательской раскладкой подсказок
audit_schedule :
editor : Samuel Vasko
keywords : console,emulator,command,prompt,conemu
licence : opensource_free,cpe:/a:mit:x11_license,wapt_public
homepage : https://cmder.app/
package_uuid : a9e3c937-936e-4d9f-aebe-a1191cf51f51
valid_from :
valid_until :
forced_install_on :
changelog : https://github.com/cmderdev/cmder/releases
min_os_version : 6.1
max_os_version :
icon_sha256sum : 1fa67c589c54b008c904316f926bd9125628deee335d7a1c91fb00f8f93dc6bc
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : DAhJ9s1jLlG2r+LcrZ7qZgXsBg9YYTXrFn7oUBXWxULeooM0F1HVWcKDbpk5JsjH96QBZK3eNkQijuDBLgMsxiGWpSPGh/VGNS0qN4vlUb/8DxvdtoSc69kw70Chg4nO1Xp80UGqx9EjPQ/WYttiZs4ggeu6/MvgFPjS3QBmvH8K4TmfzBFHXpadl0nnqjQAJDN1oUSU29MPwIZ0+6wwtJfwfyPtcQ4GuQcO1C8RmH2z8ZjnIvhz+Q2KSe0sDZ6/AtgEiNg7KeFaf8Uz4Gnni36IaAG1Th/cxw5pUwa9rO8c9DkQe2WoQGeiBpmAoRxcxmW20JUgvt24MJm3GtiYMQ==
signature_date : 2023-07-05T23:02:40.749439
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
# -*- coding: utf-8 -*-
from setuphelpers import *
import os
import shutil
app_name = "Cmder"
zip_name = "cmder.zip"
app_dir = makepath(programfiles32, app_name)
app_path = makepath(app_dir, "Cmder.exe")
icon_path = makepath(app_dir, "icons", "cmder.ico")
audit_version_number = False
win64app = None
def get_installed_version(uninstallkey):
for soft in installed_softwares(uninstallkey):
return soft.get("version", None)
return None
def install():
# Declaring local variables
package_version = control.get_software_version()
installed_version = get_installed_version(app_name)
# Installing software
if installed_version is None or Version(installed_version) < Version(package_version) or force:
print("Installing: %s (%s)" % (app_name, control.get_software_version()))
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir):
remove_tree(app_dir)
mkdirs(app_dir)
print("Extracting: %s to: %s" % (zip_name, app_dir))
unzipped_dir = zip_name.rsplit(".", 1)[0]
# unzip(zip_name, app_dir)
unzip(zip_name, unzipped_dir)
move_directory(unzipped_dir, app_dir)
# Adding software to regitry
print("Registering: %s to Windows Registry" % app_name)
register_windows_uninstall(control, win64app=win64app)
register_uninstall(app_name, win64app=win64app, install_location=app_dir, icon=icon_path)
else:
print("%s is already installed and up-to-date (%s)" % (app_name, control.get_software_version()))
# Configure App
run('"%s" /REGISTER ALL' % app_path)
# Creating custom shortcuts
create_desktop_shortcut(app_name, app_path, icon=icon_path, wDir=r"%userprofile%", arguments=r"/c %appdata%\Cmder")
create_programs_menu_shortcut(app_name, app_path, icon=icon_path, wDir=r"%userprofile%", arguments=r"/c %appdata%\Cmder")
def audit():
# Declaring local variables
package_version = control.get_software_version()
installed_version = get_installed_version(app_name)
# Auditing software
if installed_version is None:
print("%s is not installed" % app_name)
return "ERROR"
elif Version(installed_version) != Version(package_version) and audit_version_number:
print("%s is installed in version (%s) instead of (%s)" % (app_name, installed_version, package_version))
return "WARNING"
else:
print("%s (%s) is installed" % (app_name, installed_version))
return "OK"
def uninstall():
run_notfatal('"%s" /UNREGISTER ALL' % app_path)
# Uninstalling software
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir):
remove_tree(app_dir)
unregister_uninstall(app_name, win64app=win64app)
# Removing shortcuts
remove_desktop_shortcut(app_name)
remove_programs_menu_shortcut(app_name)
def move_directory(source, destination):
"""
Moves a directory safely, avoiding inherited rights and unnecessary subfolders.
Args:
source (str): The path of the directory to move.
destination (str): The destination path where the directory will be moved to.
Returns:
bool: True if the directory was successfully moved, False otherwise.
"""
try:
if not os.path.exists(destination):
os.makedirs(destination)
for item in os.listdir(source):
item_path = os.path.join(source, item)
if os.path.isfile(item_path):
shutil.move(item_path, destination)
elif os.path.isdir(item_path):
new_destination = os.path.join(destination, item)
move_directory(item_path, new_destination)
os.rmdir(source)
return True
except Exception as e:
print(f"Error: {e}")
return False
# -*- coding: utf-8 -*-
from setuphelpers import *
import json
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
api_url = "https://api.github.com/repos/cmderdev/cmder/releases/latest"
# Getting latest version information from official sources
print("API used is: %s" % api_url)
json_load = json.loads(wgets(api_url, proxies=proxies))
for to_download in json_load["assets"]:
if "cmder.zip" in to_download["name"]:
download_url = to_download["browser_download_url"]
version = json_load["tag_name"].split("-")[-1].replace("v", "")
latest_bin = to_download["name"]
break
# Downloading latest binaries
print("Latest %s version is: %s" % (control.name, version))
print("Download URL is: %s" % download_url)
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(download_url, latest_bin, proxies=proxies)
else:
print("Binary is present: %s" % latest_bin)
# Checking version from file
version_from_file = get_version_from_binary(latest_bin)
if Version(version_from_file, 4) != Version(version, 4) and version_from_file != "":
print("Changing version to the version number of the binary")
# os.rename(latest_bin, latest_bin.replace(version, version_from_file))
version = version_from_file
else:
print("Binary file version corresponds to online version")
# Changing version of the package
if Version(version, 4) > Version(control.get_software_version(), 4):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Deleting outdated binaries
remove_outdated_binaries(version)
# Validating update-package-sources
return package_updated
a1dbeaf9eede1473a2782fefa5a7438cd473ab30b56fbdd646a6a67386947bb0 : setup.py
1d2e3b4eb37de0d58f058d151edd8a1b1f153cf18ff4d895be07746ffcb7b328 : update_package.py
1fa67c589c54b008c904316f926bd9125628deee335d7a1c91fb00f8f93dc6bc : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
992546181edab9f545f6c4cc65be08e65efcf64abf21d106be34a01964f8b7c0 : WAPT/changelog.txt
ebbaf758c88a7a19f7968e4dd44a1b9f0826a504b978bd3f30d2643779467807 : luti.json
7942810379199ea944320efd3f25566b10ca491cf14037c853ae8ccf9091095e : cmder.zip
94e1455e07f05eec9a2b786ad54a853c357ecfd5b6a0789697552e2aa3248abc : WAPT/control
https://github.com/cmderdev/cmder/releases
1.3.21-38
===
Major code improvement with fixed issues