From 57131ec668aaceb5b85cc441e581c2b3c2ea26ea Mon Sep 17 00:00:00 2001 From: kostas Date: Wed, 19 Jun 2024 17:40:33 +0200 Subject: [PATCH] add: deploy script --- csharp/App/SchneiderMeterDriver/deploy.sh | 60 +++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 csharp/App/SchneiderMeterDriver/deploy.sh diff --git a/csharp/App/SchneiderMeterDriver/deploy.sh b/csharp/App/SchneiderMeterDriver/deploy.sh new file mode 100755 index 000000000..1638cfe50 --- /dev/null +++ b/csharp/App/SchneiderMeterDriver/deploy.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +csproj="SchneiderMeterDriver.csproj" +exe="SchneiderMeterDriver" +remote="10.2.4.155" +platform="linux-arm" +netVersion="net6.0" +config="Release" +host="root@$remote" +dir="/opt/innovenergy/$exe" +log_dir="/var/log/SchneiderMeterDriver" + +set -e + +# Publish the project locally +dotnet publish "$csproj" -c $config -r $platform -p:SuppressTrimmAnalysisWarnings=true -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false --self-contained true + +# Sync the published files to the remote server +rsync -av "bin/$config/$netVersion/$platform/publish/" "$host:$dir" + +# Execute commands on the remote server +ssh "$host" << 'EOF' +set -e + +# Remount the root filesystem with read and write permissions +mount -o remount,rw / + +# Create service and log directories +mkdir -p /opt/innovenergy/SchneiderMeterDriver/service +mkdir -p /opt/innovenergy/SchneiderMeterDriver/service/log +mkdir -p /var/log/SchneiderMeterDriver + +# Create the service run script +cat << 'EOL' > /opt/innovenergy/SchneiderMeterDriver/service/run +#!/bin/sh +exec 2>&1 +exec softlimit -d 200000000 -s 2000000 -a 200000000 /opt/innovenergy/SchneiderMeterDriver/SchniederDriver +EOL +chmod +x /opt/innovenergy/SchneiderMeterDriver/service/run + +# Create the log run script +cat << 'EOL' > /opt/innovenergy/SchneiderMeterDriver/service/log/run +#!/bin/sh +exec 2>&1 +exec multilog t s25000 n4 /var/log/SchneiderMeterDriver +EOL +chmod +x /opt/innovenergy/SchneiderMeterDriver/service/log/run + +# Create the symbolic link for the service +ln -sf /opt/innovenergy/SchneiderMeterDriver/service /service/SchneiderMeterDriver + +# Wait a bit for the symlink to be recongnized + +sleep 2 + +# Start the service +start SchneiderMeterDriver +EOF + +echo "Deployment and service setup completed successfully."