Fix dotnet worker template
This commit is contained in:
@@ -13,7 +13,9 @@ fi
|
|||||||
|
|
||||||
APP_DIR="$WORKSPACE_DIR/$APP_ID"
|
APP_DIR="$WORKSPACE_DIR/$APP_ID"
|
||||||
PROJECT_NAME="$(python3 - "$APP_ID" <<'PY'
|
PROJECT_NAME="$(python3 - "$APP_ID" <<'PY'
|
||||||
import re, sys
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
parts = re.split(r'[^a-zA-Z0-9]+', sys.argv[1])
|
parts = re.split(r'[^a-zA-Z0-9]+', sys.argv[1])
|
||||||
print(''.join(p[:1].upper() + p[1:] for p in parts if p))
|
print(''.join(p[:1].upper() + p[1:] for p in parts if p))
|
||||||
PY
|
PY
|
||||||
@@ -23,26 +25,33 @@ mkdir -p "$APP_DIR"
|
|||||||
cd "$APP_DIR"
|
cd "$APP_DIR"
|
||||||
|
|
||||||
cat > "$PROJECT_NAME.csproj" <<EOF_DOTNET
|
cat > "$PROJECT_NAME.csproj" <<EOF_DOTNET
|
||||||
<Project Sdk="Microsoft.NET.Sdk.Worker">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
EOF_DOTNET
|
EOF_DOTNET
|
||||||
|
|
||||||
cat > Program.cs <<EOF_DOTNET
|
cat > Program.cs <<EOF_DOTNET
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
var builder = Host.CreateApplicationBuilder(args);
|
var builder = Host.CreateApplicationBuilder(args);
|
||||||
|
|
||||||
builder.Services.AddHostedService<Worker>();
|
builder.Services.AddHostedService<Worker>();
|
||||||
|
|
||||||
var host = builder.Build();
|
var host = builder.Build();
|
||||||
host.Run();
|
host.Run();
|
||||||
|
|
||||||
public class Worker : BackgroundService
|
public sealed class Worker : BackgroundService
|
||||||
{
|
{
|
||||||
private readonly ILogger<Worker> _logger;
|
private readonly ILogger<Worker> _logger;
|
||||||
|
|
||||||
@@ -53,15 +62,30 @@ public class Worker : BackgroundService
|
|||||||
|
|
||||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||||
{
|
{
|
||||||
|
_logger.LogInformation("Service $APP_ID started.");
|
||||||
|
|
||||||
while (!stoppingToken.IsCancellationRequested)
|
while (!stoppingToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Service $APP_ID is running at {time}", DateTimeOffset.Now);
|
_logger.LogInformation("Service $APP_ID is running at {time}", DateTimeOffset.Now);
|
||||||
await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken);
|
await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_logger.LogInformation("Service $APP_ID stopped.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EOF_DOTNET
|
EOF_DOTNET
|
||||||
|
|
||||||
|
cat > appsettings.json <<'EOF_JSON'
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF_JSON
|
||||||
|
|
||||||
cat > Dockerfile <<EOF_DOCKER
|
cat > Dockerfile <<EOF_DOCKER
|
||||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
@@ -84,6 +108,19 @@ cat > README.md <<EOF_MD
|
|||||||
# $APP_NAME
|
# $APP_NAME
|
||||||
|
|
||||||
.NET Worker služba vytvořená přes CSBot Services Portal.
|
.NET Worker služba vytvořená přes CSBot Services Portal.
|
||||||
|
|
||||||
|
## Spuštění lokálně
|
||||||
|
|
||||||
|
\`\`\`bash
|
||||||
|
dotnet run
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
\`\`\`bash
|
||||||
|
docker build -t $APP_ID:latest .
|
||||||
|
docker run --rm $APP_ID:latest
|
||||||
|
\`\`\`
|
||||||
EOF_MD
|
EOF_MD
|
||||||
|
|
||||||
git init
|
git init
|
||||||
@@ -99,6 +136,7 @@ curl -sS -X POST "$GITEA_URL/api/v1/orgs/$GITEA_ORG/repos" \
|
|||||||
-d "{\"name\":\"$APP_ID\",\"private\":false,\"auto_init\":false}" >/dev/null || true
|
-d "{\"name\":\"$APP_ID\",\"private\":false,\"auto_init\":false}" >/dev/null || true
|
||||||
|
|
||||||
GITEA_PUSH_URL="${GITEA_URL/http:\/\//http:\/\/${GITEA_TOKEN}@}"
|
GITEA_PUSH_URL="${GITEA_URL/http:\/\//http:\/\/${GITEA_TOKEN}@}"
|
||||||
|
|
||||||
git remote remove origin 2>/dev/null || true
|
git remote remove origin 2>/dev/null || true
|
||||||
git remote add origin "$GITEA_PUSH_URL/$GITEA_ORG/$APP_ID.git"
|
git remote add origin "$GITEA_PUSH_URL/$GITEA_ORG/$APP_ID.git"
|
||||||
git push -u origin main
|
git push -u origin main
|
||||||
|
|||||||
Reference in New Issue
Block a user