tis-iconsextract icon

IconsExtract

Silent install package for IconsExtract

1.47-8

  • package: tis-iconsextract
  • name: IconsExtract
  • version: 1.47-8
  • categories: Utilities
  • maintainer: WAPT Team,Tranquil IT,Kenan KILICARSLAN,Jimmy PELÉ
  • editor: NirSoft
  • licence: proprietary_free,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: iconsext
  • architecture: all
  • signature_date:
  • size: 93.82 Ko
  • installed_size: 98.87 Ko
  • homepage : https://www.nirsoft.net/utils/iconsext.html

package           : tis-iconsextract
version           : 1.47-8
architecture      : all
section           : base
priority          : optional
name              : IconsExtract
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT,Kenan KILICARSLAN,Jimmy PELÉ
description       : The IconsExtract utility scans the files and folders on your computer, and extract the icons and cursors stored in EXE, DLL, OCX, CPL, and in other file types
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.nirsoft.net/utils/iconsext.html
installed_size    : 98866
impacted_process  : iconsext
description_fr    : L'utilitaire IconsExtract analyse les fichiers et les dossiers de votre ordinateur, et extrait les icônes et les curseurs stockés dans EXE, DLL, OCX, CPL, et dans d'autres types de fichiers
description_pl    : Narzędzie IconsExtract skanuje pliki i foldery na komputerze i wyodrębnia ikony i kursory zapisane w EXE, DLL, OCX, CPL oraz w innych typach plików
description_de    : Das Dienstprogramm IconsExtract scannt die Dateien und Ordner auf Ihrem Computer und extrahiert die in EXE, DLL, OCX, CPL und anderen Dateitypen gespeicherten Icons und Cursor
description_es    : La utilidad IconsExtract escanea los archivos y carpetas de su ordenador, y extrae los iconos y cursores almacenados en EXE, DLL, OCX, CPL, y en otros tipos de archivos
description_pt    : O utilitário IconsExtract digitaliza os ficheiros e pastas no seu computador, e extrai os ícones e cursores armazenados em EXE, DLL, OCX, CPL, e em outros tipos de ficheiros
description_it    : L'utilità IconsExtract analizza i file e le cartelle del computer ed estrae le icone e i cursori memorizzati in EXE, DLL, OCX, CPL e in altri tipi di file
description_nl    : Het IconsExtract hulpprogramma scant de bestanden en mappen op uw computer, en extraheert de iconen en cursors die zijn opgeslagen in EXE, DLL, OCX, CPL, en in andere bestandstypes
description_ru    : Утилита IconsExtract сканирует файлы и папки на вашем компьютере и извлекает иконки и курсоры, хранящиеся в EXE, DLL, OCX, CPL и в других типах файлов
audit_schedule    : 
editor            : NirSoft
keywords          : icon,scan,extract,exe,file
licence           : proprietary_free,wapt_public
homepage          : https://www.nirsoft.net/utils/iconsext.html
package_uuid      : 0cceaf43-3629-4798-8538-7aa6062e4cfa
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.nirsoft.net/utils/iconsext.html
min_os_version    : 6.1
max_os_version    : 
icon_sha256sum    : 7e4a3915f21c21858ebb783d57ec49e8650b672a8b8942a1d41ccd81f62cfb43
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : reo3LAuU6iyP806s8xTR9NkFKGVHFIKlhJ+mKdVCdtSyROWxEV2ohsM6DtoEK/AWKgWQ3/jYboX606m9oF9ZA9bdiZw5Yp2Ckxd64Z+OubNM0G2waskbxD07JSRDZm81prw/qk/IFBi7XihlDJRPNRICeoRHfS3mS7sDlw2kbH6YBYImJG4kHuKMHL24ozALHyYZ6SYnbFMtI36HGwFiVAG3J81YTukWZzZoWdU/BitzxCM7YY+GyGqoVmsUA+CUJhxjMjCazuZssro3Qi1pfAlp+fRqqf/4Vs8wB+Ibe1T+xVfoIvU8OLmHrKJ51+4M3eCkg1JOMghFJb8LZw4HPA==
signature_date    : 2023-12-12T11:00:26.393635
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 *


def get_app_path_version(key):
    app_path = makepath(key["install_location"], "iconsext.exe")
    return get_file_properties(app_path)["ProductVersion"]


def install():
    install_exe_if_needed(
        "iconsext_setup.exe",
        silentflags="/S",
        key="NirSoft IconsExtract",
        min_version=control.get_software_version(),
        get_version=get_app_path_version,
    )

    # Adding application desktop shortcuts
    app_path = makepath(installed_softwares(uninstallkey="NirSoft IconsExtract")[0]["install_location"], "iconsext.exe")
    create_desktop_shortcut("IconsExtract", app_path)
    create_programs_menu_shortcut("IconsExtract", app_path)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    download_url = "https://www.nirsoft.net/utils/iconsext_setup.exe"
    latest_bin = download_url.split("/")[-1]
    latest_bin = "iconsext_setup.exe"

    # Deleting binaries
    remove_outdated_binaries("*")

    # Downloading latest binaries
    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
    bin_temp = "iconsext.exe"
    unzip_with_7zip(latest_bin, ".", bin_temp)
    if get_os_name() == "Windows" and "windows" in control.target_os.lower():
        version = get_version_from_binary(bin_temp)
    else:
        version = control.get_software_version()
    remove_file(bin_temp)

    # 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()

    # Validating update-package-sources
    return package_updated

    # # Changing version of the package and validating update-package-sources
    # return complete_control_version(control, version)


def unzip_with_7zip(filename, target=None, filenames=[], extract_with_full_paths=True, recursive=True):
    r"""Extract the files from an archive file with 7zip with patterns in filenames to target directory

    Args:
        filename (str): path to archive file. (can be relative to temporary unzip location of package)
        target (str): archive content to target dir location (dir will be created if needed). Default: dirname(archive file) + basename(archive file)
        filenames (str or list of str): list of filenames / glob patterns (path sep is normally a slash)
        extract_with_full_paths (bool): keeping or not the subfolders of the archive as is
        recursive (bool): looking or not for filenames recursively

    Returns:
        None

    .. versionadded:: 2.0

    .. versionchanged:: 2.2
        changed default target location to make it correspond with unzip()

    """
    if not target:
        target = makepath(os.path.dirname(os.path.abspath(filename)), os.path.splitext(os.path.basename(filename))[0])
    if not isinstance(filenames, list):
        filenames = [filenames]

    sevenzip_path = get_7z_path()

    if not filenames:
        if extract_with_full_paths:
            run(r'"%s" x "%s" %s %s -aoa' % (sevenzip_path, filename, "" if not target else '-o"%s"' % target, "" if not recursive else "-r"))
        else:
            run(r'"%s" e "%s" %s %s -aoa' % (sevenzip_path, filename, "" if not target else '-o"%s"' % target, "" if not recursive else "-r"))
    else:
        for extract in filenames:
            if extract_with_full_paths:
                run(
                    r'"%s" x "%s" %s "%s" %s -aoa'
                    % (sevenzip_path, filename, "" if not target else '-o"%s"' % target, extract, "" if not recursive else "-r")
                )
            else:
                run(
                    r'"%s" e "%s" %s "%s" %s -aoa'
                    % (sevenzip_path, filename, "" if not target else '-o"%s"' % target, extract, "" if not recursive else "-r")
                )


def get_7z_path():
    """Check if the 7zip binary path exists and returns it.

    Returns:
        str: path to the 7zip binary
    """

    if "Windows" in get_os_name():
        sevenzip_path = makepath(programfiles, "7-Zip", "7z.exe")
        if isfile(sevenzip_path):
            return sevenzip_path
        sevenzip_path = makepath(programfiles32, "7-Zip", "7z.exe")
        if isfile(sevenzip_path):
            return sevenzip_path
        error('Could not find path to 7zip binary, please install "tis-7zip"')
    else:
        sevenzip_path = makepath("/usr", "local", "bin", "7zz")
        if isfile(sevenzip_path):
            return sevenzip_path
        sevenzip_path = sevenzip_path.replace("7zz", "7z")
        if isfile(sevenzip_path):
            return sevenzip_path
        error('Could not find path to 7zip binary, please install "tis-7zip"')

f59366eaa082a093a813ee6cc43d82c80817963fe483e4392b7fed16d1443ccf : setup.py
585a3ad51de8c48468dd2d3f798c3af12ddd648ace52d70e05d7550c10ee5508 : update_package.py
dd721568d0f5f209f1c7837aff5242a59bba22480ddbd8db5c153aee0a2ad8f9 : iconsext_setup.exe
7e4a3915f21c21858ebb783d57ec49e8650b672a8b8942a1d41ccd81f62cfb43 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
3217a844d0f5d89ee9f892616df10f08dd6e92d860234ae747ecba5c8f233edf : luti.json
1faf41b688019ce10819485c6a4175fb0028a7f26b01b51aacd21076cf4774cc : WAPT/control