X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=deploy.ps1;h=9a47e6b39907434e898aeff37fa2669dcbb8dafc;hb=c951ba6d37d525f00c6fb92eb5ab72e1ae311791;hp=6d0cad5c9568d3f72e44ab6e79cd24df9ebc9e33;hpb=b830d3cf071acfe2ba724506bfe6fa08fb0811fd;p=recipes.git diff --git a/deploy.ps1 b/deploy.ps1 index 6d0cad5..9a47e6b 100644 --- a/deploy.ps1 +++ b/deploy.ps1 @@ -1,29 +1,46 @@ -if ($args.Count -lt 1) { +# TODO: +# * copy the conf if it doesn't exist +# * create the destination directory if doesn't exist + +if ($args.Count -lt 3) { $scriptName = [Environment]::GetCommandLineArgs()[1] - echo "Usage: $scriptName " + Write-Output "Usage: $scriptName " exit 1 } -systemctl --user stop www-recipes.service +$address=$args[0] +$destination=$args[1] +$ssh_key=$args[2] -git pull -cargo build --release +$ssh_command = "ssh -i $ssh_key $address" +$scp_command = "scp -r -i $ssh_key" -$destination=$args[0] +function Invoke-SSH([string]$command) +{ + $expression = "$ssh_command $command" + Write-Output "Executing: $expression" + Invoke-Expression $expression | Write-Output +} -if (!(Test-Path -Path $destination)) { - New-Item -ItemType directory -Path $destination +function Copy-SSH([string]$source, [string]$destination) +{ + $expression = "$scp_command $source ${address}:$destination" + Write-Output "Executing: $expression" + Invoke-Expression $expression } -Copy-Item target/release/rup -Destination $destination -Copy-Item key.secret -Destination $destination +cargo build --target arm-unknown-linux-gnueabihf --release -Copy-Item static -Destination $destination -Recurse -Force +Invoke-SSH "sudo systemctl stop recipes" -# Do not overwrite the configuration. -if (!(Test-Path -Path $destination/conf.ron)) { - Copy-Item conf.ron -Destination $destination -} +Copy-SSH -source "./target/arm-unknown-linux-gnueabihf/release/recipes" -destination "~/recipes/" + +Invoke-SSH "rm -rf recipes/static" +Copy-SSH -source "./backend/static/" -destination "~/recipes/" + +Copy-SSH -source "./backend/sql/" -destination "~/recipes/" -systemctl --user start www-recipes.service +Invoke-SSH "chmod u+x recipes/recipes" +Invoke-SSH "sudo systemctl start recipes" +Write-Output "Deployment finished"