tis-scratch 456.0.4-1

  • package : tis-scratch
  • version : 456.0.4-1
  • description : Scratch est un logiciel libre conçu pour initier les élèves dès l'âge de 8 ans à des concepts fondamentaux en mathématiques et en informatique.
  • maintainer : Simon Fonteneau
  • date : 2017-09-08 10:11:18
  • signer : TRANQUIL IT SYSTEMS
  • signature_date : 20170908-101112
  • min_os_version :
  • min_wapt_version :
  • Depends :

setup.py

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

uninstallkey = []


""" You can do a CTRL F9 in pyscripter to update the package """

def install():

    versionpaquet = control['version'].split('-',1)[0]
    softname = 'Scratch'
    check_installed = installed_softwares(softname)
    if check_installed:
             for uninstall in check_installed:
                    key=uninstall['key']
                    if installed_softwares(uninstallkey=key):
                       print(u'remove old software')
                       killalltasks("Scratch 2.exe")
                       killalltasks("Scratch.exe")
                       cmd = WAPT.uninstall_cmd(uninstall['key'])
                       run_notfatal(cmd)
                       time.sleep(5)

    if isdir(makepath(programfiles32,'Scratch 2')):
        remove_tree(makepath(programfiles32,'Scratch 2'))

    if isdir(makepath(programfiles64,'Scratch 2')):
        remove_tree(makepath(programfiles64,'Scratch 2'))

    print('installing scratch2offlineeditor')
    install_exe_if_needed('Scratch-%s.exe' % versionpaquet,silentflags='-silent -eulaAccepted -programMenu',key='edu.media.mit.Scratch2Editor',min_version=versionpaquet,killbefore=['Scratch.exe','Scratch 2.exe'])


""" You can do a CTRL F9 in pyscripter to update the package """






def update_package():


    htmlSource= wgets("https://scratch.mit.edu/scratchr2/static/sa/version.xml").splitlines()
    for line in htmlSource :
            if 'versionNumber' in line:
                vers = line.replace('    <versionNumber>','').replace('</versionNumber>','')
                print('Lastest Version : ' + vers)

    os.chdir(os.path.dirname(__file__))

    from waptpackage import PackageEntry
    pe = PackageEntry()
    pe.load_control_from_wapt(os.getcwd())

    pe.version = vers + '-0'
    pe.save_control_to_wapt(os.getcwd())


    exes = glob.glob('*.exe')
    for fn in exes:
            if fn != 'Scratch-%s.exe' % vers :
                remove_file(fn)

    if not isfile('Scratch-%s.exe' % vers):
        wget('https://scratch.mit.edu/scratchr2/static/sa/Scratch-%s.exe' %(vers) ,'Scratch-%s.exe' % vers)

if __name__ == '__main__':
    update_package()
    

manifest

Couldn't retrieve manifest.
    

Forum feed

WAPT Packages / Paquets WAPT • Re: Setup.py de Mblock
myosotis a écrit :
31 décembre 2017, 16:06
Ne peut-on pas interagir avec l'appdata du current user tandis qu'un paquet est déployé?
On peut mais c'est plus compliqué, le session setup rend les chose plus simple:

CODE :

# -*- coding: utf-8 -*-from setuphelpers import *uninstallkey = []key = "{1E9DFEBB-4088-4693-A521-C755318BD492}_is1"profil_name = 'com.makeblock.Scratch3.4.11'profil_mblock_appdata = makepath('c:','ProgramData','mblock',profil_name)profil_mblock = makepath(application_data(),profil_name)def install():        versionpaquet = control['version'].split('-',1)[0]        print('Importation des drivers')        with disable_file_system_redirection():             run('regedit.exe /s usbserial_arduino.reg')             run(r'"%s" /VERYSILENT' % makepath('drivers','Driver_for_Windows.exe'))        print('installing aiz-mblock')        install_exe_if_needed("mBlock_win_V"+versionpaquet+".exe",                            silentflags="/VERYSILENT",                            key=key,                            min_version=versionpaquet,                            killbefore="mBlock.exe")        #suppression de la clé de désinstallation pour pouvoir faire une désinstallation silencieuse. Voir def uninstall():        uninstallkey.remove(key)        #suppression du raccourci bureau        remove_desktop_shortcut('mBlock')        if isdir(profil_mblock_appdata):            remove_tree(profil_mblock_appdata)        copytree2(profil_name,profil_mblock_appdata)def session_setup():    if isdir(profil_mblock):        remove_tree(profil_mblock)    copytree2(profil_mblock_appdata,profil_mblock)def uninstall():    print('uninstalling aiz-mblock')    run(r'"%s\unins000.exe" /VERYSILENT' % install_location(key))

Le profil "com.makeblock.Scratch3.4.11" sera écrasé a la prochaine ouverture de session.
De cette manière même si le profil de l'utilisateur n'existe pas encore ça fonctionnera très bien !

N'oubliez pas d'incrémenter le numéro de version du paquet après chaque modification du session setup !

Statistiques: Posté par sfonteneau — 31 décembre 2017, 18:15


WAPT Packages / Paquets WAPT • Re: Setup.py de Mblock

CODE :

# -*- coding: utf-8 -*-from setuphelpers import *# Importation des fichiers de personalisation copytree2(r'Perso',r'C:\ProgramData\mBlock') #Import du dossier fourni dans le paquetfilecopyto(r'Copy.cmd',r'C:\ProgramData\mBlock') #Import d'un fourni egalement avec le paquetkey = "{1E9DFEBB-4088-4693-A521-C755318BD492}_is1"uninstallkey = ['{1E9DFEBB-4088-4693-A521-C755318BD492}_is1']#Creation d'un targetdir en faisant usage de user_appdata qui selon la doc renvoit à /userX/appdata/roaming/targetdir = makepath(user_appdata(),'com.makeblock.Scratch3.4.11')print targetdir # ça c'est pour moi ;) - ca m'affiche bien le dossier souhaité... malheureusement l'exploit est nulle#uninstallstring = [r' ""C:\Program Files (x86)\mBlock\unins000.exe" /SILENT {1E9DFEBB-4088-4693-A521-C755318BD492}_is1']def install():        versionpaquet = control['version'].split('-',1)[0]        print('Importation de drivers')        with disable_file_system_redirection():             run('regedit.exe /s usbserial_arduino.reg')             run(r'"%s" /VERYSILENT' % makepath('drivers','Driver_for_Windows.exe'))        print('Installation de util-mblock')        install_exe_if_needed("mBlock_win_V"+versionpaquet+".exe",                            silentflags="/VERYSILENT",                            key=key,                            min_version=versionpaquet,                            killbefore="mBlock.exe")#suppression de la clé de désinstallation pour pouvoir faire une désinstallation silencieuse. Voir def uninstall():        #uninstallkey.remove(key) # FONCTION pas dispo dans Setuphelpers v1.3.5        #suppression du raccourci bureau        #remove_desktop_shortcut('mBlock')print "Post installation"lang = makepath(targetdir)if not isdir(lang):os.makedirs(lang)copytree2('Perso','targetdir') #Tentative d'import de com.makeblock.Scratch3.4.11 via fonction copytree2 + user_appdata() : Resultat non probantsession_setup()   def uninstall():    print('Désinstallation de util-mblock')    run(r'"%s\unins000.exe" /VERYSILENT' % install_location(key))def session_setup():targetdir = makepath(user_appdata(),'com.makeblock.Scratch3.4.11')if not isdir(targetdir):print('creation du dossier com.makeblock.Scratch3.4.11')mkdirs(makepath(user_appdata(),'com.makeblock.Scratch3.4.11'))#copytree2('C:\ProgramData\mBlock','targetdir')run(r'C:\ProgramData\mBlock\Copy.cmd')#ci-dessus vs avez mes 2 tentatives : (1) via copytree2;, l'autre via le run d'un cmd que j'ai essayé de runner pour injecter les fichiers adéquats. Ni l'une, ni l'autre des méthodes ne fonctionnent.else:#remove_file(makepath(user_appdata(),'com.makeblock.Scratch3.4.11'))#copytree2('C:\ProgramData\mBlock','targetdir')run(r'C:\ProgramData\mBlock\Copy.cmd')#copytree2(r'C:\ProgramData\mBlock',r'%USERPROFILE%\AppData\Roaming')#Personalisation de mblock pour l'interactive User - Alternative tryrun(r'"Copy.cmd"')
+ Copie de mon cmd

CODE :

if not exist C:\Users\%username%\AppData\Roaming\com.makeblock.Scratch3.4.11 mkdir C:\Users\%username%\AppData\Roaming\com.makeblock.Scratch3.4.11 xcopy C:\ProgramData\mBlock\com.makeblock.Scratch3.4.11 C:\Users\%username%\AppData\Roaming\com.makeblock.Scratch3.4.11 /E /C /Y
..... ça ne fonctionne pas.... pas plus qu'avec %appdata%

:'( .... ne peut-on pas interagir avec l'appdata du current user tandis qu'un paquet est déployé?

Statistiques: Posté par myosotis — 31 décembre 2017, 16:06