mirror of
				https://github.com/jakeswenson/BitBetter.git
				synced 2025-10-31 12:53:25 +00:00 
			
		
		
		
	Add comments and fix minor issues
This commit is contained in:
		
							parent
							
								
									86ca7b4100
								
							
						
					
					
						commit
						34b274f24a
					
				
							
								
								
									
										64
									
								
								build.ps1
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								build.ps1
									
									
									
									
									
								
							|  | @ -1,5 +1,11 @@ | ||||||
| if (Test-Path "$pwd\temp") { | # define temporary directory | ||||||
| 	Remove-Item "$pwd\temp" -Recurse -Force | $tempdirectory = "$pwd\temp" | ||||||
|  | # define services to patch | ||||||
|  | $components = "Api","Identity" | ||||||
|  | 
 | ||||||
|  | # delete old directories / files if applicable | ||||||
|  | if (Test-Path "$tempdirectory") { | ||||||
|  | 	Remove-Item "$tempdirectory" -Recurse -Force | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (Test-Path -Path "$pwd\licenseGen\Core.dll" -PathType Leaf) { | if (Test-Path -Path "$pwd\licenseGen\Core.dll" -PathType Leaf) { | ||||||
|  | @ -14,61 +20,83 @@ if (Test-Path -Path "$pwd\bitBetter\cert.cert" -PathType Leaf) { | ||||||
| 	Remove-Item "$pwd\bitBetter\cert.cert" -Force | 	Remove-Item "$pwd\bitBetter\cert.cert" -Force | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # generate keys if none are available | ||||||
| if (!(Test-Path "$pwd\.keys")) { | if (!(Test-Path "$pwd\.keys")) { | ||||||
| 	.\generateKeys.ps1 | 	.\generateKeys.ps1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # copy the key to bitBetter and licenseGen | ||||||
| Copy-Item "$pwd\.keys\cert.cert" -Destination "$pwd\bitBetter" | Copy-Item "$pwd\.keys\cert.cert" -Destination "$pwd\bitBetter" | ||||||
| Copy-Item "$pwd\.keys\cert.pfx" -Destination "$pwd\licenseGen" | Copy-Item "$pwd\.keys\cert.pfx" -Destination "$pwd\licenseGen" | ||||||
|  | 
 | ||||||
|  | # build bitBetter and clean the source directory after | ||||||
| docker build -t bitbetter/bitbetter "$pwd\bitBetter" | docker build -t bitbetter/bitbetter "$pwd\bitBetter" | ||||||
| Remove-Item "$pwd\bitBetter\cert.cert" -Force | Remove-Item "$pwd\bitBetter\cert.cert" -Force | ||||||
| 
 | 
 | ||||||
| $components = "Api","Identity" | # gather all running instances | ||||||
| $oldinstances = docker container ps --all -f Name=bitwarden --format '{{.ID}}' | $oldinstances = docker container ps --all -f Name=bitwarden --format '{{.ID}}' | ||||||
| 
 | 
 | ||||||
|  | # stop all running instances | ||||||
| foreach ($instance in $oldinstances) { | foreach ($instance in $oldinstances) { | ||||||
| 	docker stop $instance | 	docker stop $instance | ||||||
| 	docker rm $instance | 	docker rm $instance | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| docker pull bitwarden/self-host:beta | # update bitwarden itself | ||||||
|  | $confirmation = Read-Host "Update bitwarden source container" | ||||||
|  | if ($confirmation -eq 'y') { | ||||||
|  |     docker pull bitwarden/self-host:beta | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
|  | # stop and remove previous existing patch(ed) container | ||||||
| docker stop bitwarden-patch | docker stop bitwarden-patch | ||||||
| docker rm bitwarden-patch | docker rm bitwarden-patch | ||||||
| docker image rm bitwarden-patch | docker image rm bitwarden-patch | ||||||
|  | 
 | ||||||
|  | # start a new bitwarden instance so we can patch it | ||||||
| $patchinstance = docker run -d --name bitwarden-patch bitwarden/self-host:beta | $patchinstance = docker run -d --name bitwarden-patch bitwarden/self-host:beta | ||||||
| 
 | 
 | ||||||
| New-item -ItemType Directory -Path "$pwd\temp" | # create our temporary directory | ||||||
|  | New-item -ItemType Directory -Path $tempdirectory | ||||||
|  | 
 | ||||||
|  | # extract the files that need to be patched from the services that need to be patched into our temporary directory | ||||||
| foreach ($component in $components) { | foreach ($component in $components) { | ||||||
| 	New-item -itemtype Directory -path "$pwd\temp\$component" | 	New-item -itemtype Directory -path "$tempdirectory\$component" | ||||||
| 	docker cp $patchinstance`:/app/$component/Core.dll "$pwd\temp\$component\Core.dll" | 	docker cp $patchinstance`:/app/$component/Core.dll "$tempdirectory\$component\Core.dll" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| docker run -v "$pwd\temp:/app/mount" --rm bitbetter/bitbetter | # run bitBetter, this applies our patches to the required files | ||||||
|  | docker run -v "$tempdirectory`:/app/mount" --rm bitbetter/bitbetter | ||||||
| 
 | 
 | ||||||
|  | # copy the patched files back into the temporary instance | ||||||
| foreach ($component in $components) { | foreach ($component in $components) { | ||||||
| 	docker cp "$pwd\temp\$component\Core.dll" $patchinstance`:/app/$component/Core.dll | 	docker cp "$tempdirectory\$component\Core.dll" $patchinstance`:/app/$component/Core.dll | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # create a new image from our patched instanced | ||||||
| docker commit $patchinstance bitwarden-patch | docker commit $patchinstance bitwarden-patch | ||||||
|  | 
 | ||||||
|  | # stop and remove our temporary container | ||||||
| docker stop bitwarden-patch | docker stop bitwarden-patch | ||||||
| docker rm bitwarden-patch | docker rm bitwarden-patch | ||||||
| 
 | 
 | ||||||
| Copy-Item "$pwd\temp\Identity\Core.dll" -Destination "$pwd\licenseGen" | # copy our patched library to the licenseGen source directory | ||||||
| Remove-Item "$pwd\temp" -Recurse -Force | Copy-Item "$tempdirectory\Identity\Core.dll" -Destination "$pwd\licenseGen" | ||||||
| 
 | 
 | ||||||
| $newinstances = @() | # remove our temporary directory | ||||||
|  | Remove-Item "$tempdirectory" -Recurse -Force | ||||||
|  | 
 | ||||||
|  | # start all user requested instances | ||||||
| foreach($line in Get-Content "$pwd\.servers\serverlist.txt") { | foreach($line in Get-Content "$pwd\.servers\serverlist.txt") { | ||||||
| 	$newinstace = @(Invoke-Expression "& $line") | 	Invoke-Expression "& $line" | ||||||
| 	$newinstances += $newinstace |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| foreach ($instance in $newinstances) { |  | ||||||
| 	docker start $instance |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # remove our bitBetter image | ||||||
| docker image rm bitbetter/bitbetter | docker image rm bitbetter/bitbetter | ||||||
| 
 | 
 | ||||||
|  | # build the licenseGen | ||||||
| docker build -t bitbetter/licensegen "$pwd\licenseGen" | docker build -t bitbetter/licensegen "$pwd\licenseGen" | ||||||
|  | 
 | ||||||
|  | # clean the licenseGen source directory | ||||||
| Remove-Item "$pwd\licenseGen\Core.dll" -Force | Remove-Item "$pwd\licenseGen\Core.dll" -Force | ||||||
| Remove-Item "$pwd\licenseGen\cert.pfx" -Force | Remove-Item "$pwd\licenseGen\cert.pfx" -Force | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user