Skip to content

Commit f9d7ee6

Browse files
publish as a NuGet (#3)
* add docs * adjust namespaces * add nuget info * add a build * adjust namespaces * Revert "adjust namespaces" This reverts commit f165c55. * change the package ID * adjust the README * adjust namespaces * move proj files
1 parent eb679d1 commit f9d7ee6

File tree

24 files changed

+191
-95
lines changed

24 files changed

+191
-95
lines changed

.github/workflows/ci-build.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Build KanjiVG.Animation
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
types: [opened, synchronize, reopened, closed]
8+
branches: [ main ]
9+
workflow_dispatch:
10+
11+
env:
12+
Configuration: RELEASE
13+
ArtifactsName: nuget
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v2
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Install .NET 6
25+
uses: actions/setup-dotnet@v1
26+
with:
27+
dotnet-version: 6.0.x
28+
29+
- name: NuGet restore
30+
run: dotnet restore
31+
32+
- name: Build
33+
run: dotnet build -c ${{ env.Configuration }} -v m --no-restore
34+
35+
- name: Run tests
36+
run: dotnet test -c ${{ env.Configuration }} -v m --no-restore --no-build
37+
38+
- name: Create NuGet Artifacts
39+
uses: actions/[email protected]
40+
with:
41+
name: ${{ env.ArtifactsName }}
42+
path: '**/*.nupkg'
43+
44+
release:
45+
runs-on: ubuntu-latest
46+
needs: build
47+
if: contains(github.event.pull_request.labels.*.name, 'release') && github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true
48+
steps:
49+
- name: Checkout
50+
uses: actions/checkout@v2
51+
with:
52+
fetch-depth: 0
53+
54+
- name: Download NuGet Artifacts
55+
uses: actions/[email protected]
56+
with:
57+
name: ${{ env.ArtifactsName }}
58+
59+
- name: NuGet push
60+
env:
61+
NUGET_AUTH_TOKEN: ${{ secrets.NUGET_API_KEY }}
62+
NUGET_SOURCE_URL: https://api.nuget.org/v3/index.json
63+
PACKAGE_GITHUB_AUTH_TOKEN: ${{ secrets.PACKAGE_GITHUB_API_KEY }}
64+
PACKAGE_GITHUB_SOURCE_URL: https://nuget.pkg.github.com/MyNihongo/index.json
65+
run: |
66+
dotnet nuget push -s ${{ env.NUGET_SOURCE_URL }} -k ${{ env.NUGET_AUTH_TOKEN }} **/*.nupkg
67+
dotnet nuget push -s ${{ env.PACKAGE_GITHUB_SOURCE_URL }} -k ${{ env.PACKAGE_GITHUB_AUTH_TOKEN }} **/*.nupkg

MyNihongo.KanjiVG.Animation.sln

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.0.32014.148
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyNihongo.KanjiVG.Animation", "src\MyNihongo.KanjiVG.Animation\MyNihongo.KanjiVG.Animation.csproj", "{64CCA305-2975-47EE-9066-84282D0EACC2}"
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyNihongo.KanjiVG.Animation.CLI", "src\MyNihongo.KanjiVG.Animation.CLI\MyNihongo.KanjiVG.Animation.CLI.csproj", "{64CCA305-2975-47EE-9066-84282D0EACC2}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyNihongo.KanjiVG.Animator", "src\MyNihongo.KanjiVG.Animator\MyNihongo.KanjiVG.Animator.csproj", "{3463865A-26F1-4F7B-A673-046FFA7FD027}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyNihongo.KanjiVG.Animation", "src\MyNihongo.KanjiVG.Animation\MyNihongo.KanjiVG.Animation.csproj", "{3463865A-26F1-4F7B-A673-046FFA7FD027}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,21 @@ Animations are started when the page is loaded as well as when the SVG is clicke
55
![kanji](samples/6f22.svg)
66
![kanji](samples/5b57.svg)
77

8-
## Running the animator
8+
## Running CLI
99
```console
1010
MyNihongo.KanjiVG.Animation -s "source path" -d "destination path"
1111
```
1212

13+
## Running the service
14+
```cs
15+
var svgText = "<svg xmlns=\"http://www.w3.org/2000/svg\"...";
16+
var fileName = "6f22";
17+
var svgParams = new SvgParams();
18+
IKanjiAnimatorService service = new KanjiAnimatorService();
19+
20+
var result = service.Generate(svgText, fileName, svgParams);
21+
```
22+
1323
#### List of args
1424
|Name|Mandatory|Meaning|Default value|
1525
|-|-|-|-|

favico.png

7.02 KB
Loading

src/MyNihongo.KanjiVG.Animation/Args.cs renamed to src/MyNihongo.KanjiVG.Animation.CLI/Args.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using CommandLine;
22

3-
namespace MyNihongo.KanjiVG.Animation;
3+
namespace MyNihongo.KanjiVG.Animation.CLI;
44

55
public sealed record Args
66
{
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net6.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<PackageReference Include="CommandLineParser" Version="2.8.0" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<ProjectReference Include="..\MyNihongo.KanjiVG.Animation\MyNihongo.KanjiVG.Animation.csproj" />
16+
</ItemGroup>
17+
18+
</Project>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using CommandLine;
2-
using MyNihongo.KanjiVG.Animation;
3-
using MyNihongo.KanjiVG.Animation.Services;
2+
using MyNihongo.KanjiVG.Animation.CLI;
3+
using MyNihongo.KanjiVG.Animation.CLI.Services;
44

55
await Parser.Default.ParseArguments<Args>(args)
66
.WithParsedAsync(new KanjiAnimationCreator().CreateAsync);

src/MyNihongo.KanjiVG.Animation/Services/KanjiAnimationCreator.cs renamed to src/MyNihongo.KanjiVG.Animation.CLI/Services/KanjiAnimationCreator.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
using MyNihongo.KanaDetector.Extensions;
2-
using MyNihongo.KanjiVG.Animation.Utils;
3-
using MyNihongo.KanjiVG.Animation.Utils.Extensions;
4-
using MyNihongo.KanjiVG.Animator.Services;
5-
using System.Text;
1+
using System.Text;
2+
using MyNihongo.KanaDetector.Extensions;
3+
using MyNihongo.KanjiVG.Animation.CLI.Utils;
4+
using MyNihongo.KanjiVG.Animation.CLI.Utils.Extensions;
65

7-
namespace MyNihongo.KanjiVG.Animation.Services;
6+
namespace MyNihongo.KanjiVG.Animation.CLI.Services;
87

98
internal sealed class KanjiAnimationCreator
109
{

src/MyNihongo.KanjiVG.Animation/Utils/Extensions/ArgsEx.cs renamed to src/MyNihongo.KanjiVG.Animation.CLI/Utils/Extensions/ArgsEx.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using MyNihongo.KanjiVG.Animator;
2-
3-
namespace MyNihongo.KanjiVG.Animation.Utils.Extensions;
1+
namespace MyNihongo.KanjiVG.Animation.CLI.Utils.Extensions;
42

53
internal static class ArgsEx
64
{
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace MyNihongo.KanjiVG.Animation.CLI.Utils.Extensions;
2+
3+
internal static class StringEx
4+
{
5+
public static async Task WriteTo(this string @this, string path)
6+
{
7+
await using var stream = FileUtils.AsyncStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
8+
await using var writer = new StreamWriter(stream);
9+
10+
await writer.WriteAsync(@this)
11+
.ConfigureAwait(false);
12+
13+
await writer.FlushAsync()
14+
.ConfigureAwait(false);
15+
}
16+
}

0 commit comments

Comments
 (0)