-
Notifications
You must be signed in to change notification settings - Fork 0
/
deploy-user-extension.ps1
47 lines (41 loc) · 1.29 KB
/
deploy-user-extension.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
$exclude = @('*.ps1','admin', '*manifest.json', 'publish.zip') ## files, directories, or extensions to exclude
$manifest = 'user-manifest.json' ## manifest fileName to include as manifest.json
$dir = (Get-Item -Path ".\" -Verbose).FullName
$deploy = $dir + '\deploy'
Write-Host Starting deploy...
Write-Host Exluding ($exclude -join ', ')...
Write-Host Manifest file name: $manifest
Write-Host
## delete previous deploy
if(Test-Path $deploy)
{
Write-Host ..deleting $deploy
Remove-Item -Recurse -Force $deploy
}
## copy files and directories
Get-ChildItem $dir -Recurse -Exclude $exclude | ForEach-Object `
{
$ignore = $false
Foreach($excl in $exclude)
{
if($_.FullName.StartsWith($dir + '\' + $excl))
{
$ignore = $true
break
}
}
if(-NOT $ignore)
{
Write-Host ..copying $_.FullName
Copy-Item $_ -Destination (Join-Path $deploy $_.FullName.Substring($dir.length))
}
}
## copy manifest file as manifest.json
Write-Host ..copying $dir\$manifest [as] manifest.json
Get-Item ($dir + '\' + $manifest) | Copy-Item -Destination ($deploy + '\manifest.json')
Write-Host
Write-Host Successfully deployed to $deploy.
Write-Host
Write-Host 'Press any key to close...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');