Files
kickstart-cs/kickstart.ps1

50 lines
1.5 KiB
PowerShell

$AppName = Read-Host -Prompt 'Input your project (folder) name'
$TargetFolder="../$AppName"
Write-Host "Creating a new project '$AppName' in '$TargetFolder'"
$confirmation = Read-Host "Are you sure you want to proceed? [y/N]"
if ($confirmation -ne 'y') {
Write-Host "Closing.."
Start-Sleep -Seconds 2
Exit
}
New-Item -ItemType Directory -Force -Path $TargetFolder
Push-Location $TargetFolder
git init
# solution
dotnet new sln -n Solution
dotnet new gitignore
dotnet new globaljson
dotnet new nugetconfig
# domain project
dotnet new classlib -n Domain
dotnet sln add Domain
# unit test project
dotnet new nunit -n Domain.Tests
dotnet add Domain.Tests package NSubstitute
dotnet sln add Domain.Tests
dotnet add Domain.Tests reference Domain
# wiring project
dotnet new classlib -n Wiring
dotnet sln add Wiring
dotnet add Wiring reference Domain
dotnet add Wiring package Autofac
# use webapi and/or console
# webapi project
#dotnet new webapi -n WebApi
#dotnet sln add WebApi
#dotnet add WebApi reference Domain
#dotnet add WebApi reference Wiring
# console project
dotnet new console -n ConsoleApp
dotnet sln add ConsoleApp
dotnet add ConsoleApp reference Domain
dotnet add ConsoleApp reference Wiring
Pop-Location
# copy content files
Copy-Item -Path "files/AssemblyInfo.cs" -Destination "$TargetFolder/Domain"
Copy-Item -Path "files/DomainPorts.cs" -Destination "$TargetFolder/Domain"
Copy-Item -Path "files/IAdapterResolver.cs" -Destination "$TargetFolder/Domain"
Copy-Item -Path "files/Wiring.cs" -Destination "$TargetFolder/Wiring"
Write-Host "Finished"