X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=deploy.ps1;fp=deploy.ps1;h=da77557ab5b84cd9448131d07280a347e90d9c34;hb=dcf7523ccf6cae4e7d1d38fcbd85bc0b2d0e1703;hp=6f0b5349a0e7eada9c1e974129de9ed8527ca238;hpb=d83b56c6428a145b3cf83ffb1dcad0eb095c8054;p=recipes.git diff --git a/deploy.ps1 b/deploy.ps1 index 6f0b534..da77557 100644 --- a/deploy.ps1 +++ b/deploy.ps1 @@ -1,28 +1,43 @@ -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 } -cargo build --release +$address=$args[0] +$destination=$args[1] +$ssh_key=$args[2] -systemctl --user stop www-recipes.service +$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 } -strip target/release/recipes -Copy-Item target/release/recipes -Destination $destination +cargo build --target arm-unknown-linux-gnueabihf --release -Copy-Item backend/static -Destination $destination -Recurse -Force +# $a = Invoke-Expression ($ssh_command + "ls") +Invoke-SSH("sudo systemctl stop recipes") -# Do not overwrite the configuration. -if (!(Test-Path -Path $destination/conf.ron)) { - Copy-Item backend/conf.ron -Destination $destination -} +Copy-SSH -source "./target/arm-unknown-linux-gnueabihf/release/recipes" -destination "~/recipes/" +Copy-SSH -source "./backend/static/" -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"