Question Nouveau projet Codeplex : Psionic

Plus d'informations
il y a 6 ans 5 mois #16989 par benduru
Salut,

Lors des techdays on m'a démandé si il existait un moyen de compresser un fichier en powershell, du coup je me suis permis de mettre en avant votre taff sur ce module :)

@+

PS: désolé de pas venir plus souvent ici :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 5 mois #16991 par Laurent Dardenne
benduru écrit:

Lors des techdays on m'a démandé si il existait un moyen de compresser un fichier en powershell, du coup je me suis permis de mettre en avant votre taff sur ce module

Merci.
Une version stable devrait voir le jour prochainement, pour le moment je me bats avec la gestion des PSPath :angry:
benduru écrit:

PS: désolé de pas venir plus souvent ici :)

Tu viens quand tu veux, tu connais l'adresse ;)

En passant, combien de personnes avez-vous eu lors de vos sessions aux techdays ?

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 5 mois #16994 par benduru
Salut Laurent,

On a fait 200/300 sur celle du mercredi qui tombait pil poil pendant LA session des techdays, et celle du vendredi peut être 400.
Les chiffres au niveau des réservations étaient bien supérieurs, histoire de nous mettre la pression quoi ^^

On a essayé de proposer un peu de technique dans ce monde de marketing !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 5 mois #16996 par Laurent Dardenne
Salut Fabien
benduru écrit:

On a fait 200/300 sur celle du mercredi qui tombait pil poil pendant LA session des techdays, et celle du vendredi peut être 400.

C'est très bien, bravo !

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 5 mois #17046 par Laurent Dardenne
Avant de livrer une version stable, voici une manière de configurer un module, on peut utiliser des fichiers plat, xml ou encore ceci .
J'ai opté pour une configuration via une fonction externe appelée par le code du module, si toutefois elle existe au moment de l'Import-Module.

Psionic propose une configuration par défaut à minima, si on souhaite utiliser des propriétés personnelles on utilisera la fonction Get-PsIonicDefaultSfxConfiguration :
[code:1]
function Get-PsIonicDefaultSfxConfiguration {
#Create a personnal SFX configuration
#
#When this function exists before importing the module psionic,
#it becomes the default configuration. See Get-PsIonicSfxOptions function.

$SfxOptions=@{
ExeOnUnpack=\"Powershell -noprofile -File .\MySetup.ps1\"
ExtractDirectory='%TEMP%'
Description='Archive autoextractible exécutant un script Powershell en fin d''extraction.'
FileVersion='1.0'
IconFile=\"$(($env:«»PSModulePath -split ';')[0])\PsIonic\PsIonic.ico\"
ExtractExistingFile='OverwriteSilently'
NameOfProduct='Test'
VersionOfProduct='1.0'
Copyright='Auteur Laurent Dardenne.'

#Additional options for the csc.exe compiler, when producing the SFX
#see : msdn.microsoft.com/en-us/library/6s2x2bzy.aspx
AdditionalCompilerSwitches= '/optimize'

#WindowTitle='' with -GUI
Quiet=$false #switch parameter
Remove=$false #switch parameter
}
New-ZipSfxOptions @SfxOptions -Cmdline # -Cmdline or -GUI
}#Get-DefaultSfxConfiguration
[/code:1]
On crée une hashtable que l'on passe en splatting à New-ZipSfxOptions, fonction de création de configuration.
L'intérêt est que l'on peut utiliser du code PS dans ces déclarations.

Mais, eh oui avec PS on peut faire beaucoup de chose, mais ce n'est pas tjr triviale. Quel dommage...

Donc, le petit problème c'est que la fonction externe appelée dans le module, utilise une fonction exportée du module.
Là on tombe sur le cas du PSOeuf et de la PSPoule, car la fonction du module n'est pas encore accessible dans l'état de session de la fonction.
Celle-ci ne l'est qu'au retour de l'Import-Module, en tout cas c'est le comportement constaté avec PS v2.

Pour le résoudre, on doit utiliser une recette connue qui est d'injecter le code de la fonction dans l'état de session du module ainsi la fonction New-ZipSfxOptions devient accessible au code de la fonction externe Get-DefaultSfxConfiguration.
[code:1]
If (Test-Path Function:Get-PsIonicDefaultSfxConfiguration)
{
#A ce stade, les fonctions de ce module ne sont pas encore accessible à la fonction externe.
#Même si ce code se trouvait après l'appel à Export-ModuleMember
$FunctionBounded=$MyInvocation.MyCommand.ScriptBlock.Module.NewBoundScriptBlock(${function:Get-PsIonicDefaultSfxConfiguration})
&$FunctionBounded|Set-PsIonicSfxOptions
}
[/code:1]
Reste qu'il faut toutefois s'assurer, dans Get-DefaultSfxConfiguration, d'utiliser uniquement du code sans dépendance à d'autres fonctions ou modules, sinon vous aurez droit au PSPoulailler...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 5 mois #17052 par Richard Lazaro
Cela fait longtemps que je suis pas venu sur le forum et je ramasse une migraine de bon matin :o

Félicitation les mecs, un beau projet.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.337 secondes
Propulsé par Kunena