Modul_Cleoni_Package.psm1

Function func_Package($Path, $tempFolder, $Joblist) {
 function Write-Status($Text) {
      Write-Output $Text.trim()
      $new = [Environment]::NewLine
      Write-Output $new
  }
 function Cleoni-Clear($Path) {
     Remove-Item -Path $Path -Confirm:$false -Recurse -Force -ErrorAction SilentlyContinue | Out-Null
     Remove-Item -Path $Path -Confirm:$false -Force -ErrorAction SilentlyContinue | Out-Null
 } 

 Write-Status -Text $( -join ('Process-ID: ', $PID)).Trim()
 $PID_Path = "$Path\$tempFolder"
 If (!(Test-Path -Path $PID_Path)) { New-Item -Path $PID_Path -ItemType Directory | out-null }
 $PID | Out-File -FilePath "$PID_Path\PID.txt" -Encoding utf8 -Force | out-null
 
 $SetupFile    = ([System.IO.FileInfo]$Joblist.SetupFile).Name
 $SourceFolder = ([System.IO.FileInfo]$Joblist.Setupfile).DirectoryName
 $TargetFile   = ([System.IO.FileInfo]$Joblist.OutputFolder).Name
 $OutputFolder = ([System.IO.FileInfo]$Joblist.OutputFolder).DirectoryName

 #Start Packaging
 Write-Status -Text 'Start packaging...'
 Start-Process -Wait $Joblist.Intune32Tool "-q -c `"$SourceFolder`" -s `"$SetupFile`" -o `"$PID_Path`"" -WindowStyle Hidden
 Get-ChildItem -Path $PID_Path | Rename-Item -NewName $TargetFile
 Get-ChildItem -Path $PID_Path | Move-Item -Destination $OutputFolder
 Write-Status -Text 'Package ready'
 Write-Status -Text "Path: $OutputFolder\$TargetFile"

 Cleoni-Clear -Path "$Path\$tempFolder"
}