Skip to content

Commit c66f302

Browse files
committed
feat: initial commit
0 parents  commit c66f302

219 files changed

Lines changed: 585461 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# EditorConfig — https://editorconfig.org
2+
root = true
3+
4+
# ── Defaults for all files ────────────────────────────────────────────────────
5+
[*]
6+
charset = utf-8
7+
end_of_line = lf
8+
indent_style = space
9+
indent_size = 4
10+
trim_trailing_whitespace = true
11+
insert_final_newline = true
12+
13+
# ── Java ──────────────────────────────────────────────────────────────────────
14+
[*.java]
15+
max_line_length = 200
16+
17+
# ── Build & Config (XML / POM) ────────────────────────────────────────────────
18+
[{*.xml,*.xsd}]
19+
max_line_length = 200
20+
21+
# ── Web / Cloud Config ────────────────────────────────────────────────────────
22+
[*.{yml,yaml,json}]
23+
indent_size = 2
24+
25+
# ── Markdown ──────────────────────────────────────────────────────────────────
26+
# Trailing spaces are significant in Markdown (line break); keep them.
27+
[*.md]
28+
trim_trailing_whitespace = false
29+
max_line_length = off
30+
31+
# ── Shell scripts ─────────────────────────────────────────────────────────────
32+
[*.sh]
33+
indent_size = 2

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.java eol=lf
2+
*.properties eol=lf

.github/workflows/ci.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Build & Deploy
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
workflow_dispatch: {}
11+
12+
# cancel superseded runs on the same branch/PR to save CI minutes.
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
permissions:
18+
contents: read
19+
20+
jobs:
21+
22+
build:
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
os: [ubuntu-latest, windows-latest]
27+
java: ['17']
28+
include:
29+
- os: ubuntu-latest
30+
java: '25'
31+
runs-on: ${{ matrix.os }}
32+
# JDK 25 is a forward-compatibility canary (see errorprone-fatal profile notes in pom.xml
33+
# on Error Prone's JDK ceiling): let it fail without failing the workflow or blocking deploy.
34+
continue-on-error: ${{ matrix.java == '25' }}
35+
steps:
36+
- name: Check out repository (incl. font submodules)
37+
uses: actions/checkout@v7
38+
with:
39+
submodules: recursive
40+
fetch-depth: 1
41+
42+
- name: Verify font submodules were checked out
43+
shell: bash
44+
run: |
45+
set -euo pipefail
46+
for module in figlet-fonts-xero; do
47+
dir="$module/src/main/resources/fonts"
48+
count=$(find "$dir" -type f \( -name '*.flf' -o -name '*.tlf' \) 2>/dev/null | wc -l)
49+
echo "Found $count font file(s) in $dir"
50+
if [ "$count" -eq 0 ]; then
51+
echo "::error::$module has no font files. Was the git submodule checked out (submodules: recursive)?"
52+
exit 1
53+
fi
54+
done
55+
56+
- name: Set up JDK ${{ matrix.java }}
57+
uses: actions/setup-java@v6
58+
with:
59+
java-version: ${{ matrix.java }}
60+
distribution: 'temurin'
61+
cache: maven
62+
63+
- name: Build with Maven/JDK ${{ matrix.java }} on ${{ matrix.os }}
64+
run: mvn --batch-mode --file pom.xml clean verify
65+
66+
deploy:
67+
needs: build
68+
if: github.event_name == 'push'
69+
runs-on: ubuntu-latest
70+
permissions:
71+
contents: read
72+
packages: write
73+
steps:
74+
- name: Check out repository (incl. font submodules)
75+
uses: actions/checkout@v7
76+
with:
77+
submodules: recursive
78+
fetch-depth: 1
79+
80+
- name: Set up Java for deployment to Sonatype snapshot repo
81+
uses: actions/setup-java@v6
82+
with:
83+
java-version: '17'
84+
distribution: 'temurin'
85+
cache: maven
86+
# Sonatype Central Snapshots
87+
# must match distributionManagement/snapshotRepository/id in pom:
88+
server-id: central
89+
server-username: SONATYPE_CENTRAL_USERNAME
90+
server-password: SONATYPE_CENTRAL_PASSWORD
91+
92+
- name: Deploy to Sonatype Central snapshot repo
93+
run: mvn --batch-mode --file pom.xml --activate-profiles fast deploy
94+
env:
95+
SONATYPE_CENTRAL_USERNAME: ${{ secrets.SONATYPE_CENTRAL_USERNAME }}
96+
SONATYPE_CENTRAL_PASSWORD: ${{ secrets.SONATYPE_CENTRAL_PASSWORD }}
97+

.github/workflows/codeql.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
schedule:
11+
- cron: '30 3 * * 1'
12+
workflow_dispatch: {}
13+
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
permissions:
19+
contents: read
20+
21+
jobs:
22+
23+
analyze:
24+
name: Analyze (java-kotlin)
25+
runs-on: ubuntu-latest
26+
permissions:
27+
actions: read
28+
contents: read
29+
security-events: write
30+
31+
steps:
32+
- name: Check out repository (incl. font submodules)
33+
uses: actions/checkout@v7
34+
with:
35+
submodules: recursive
36+
fetch-depth: 1
37+
38+
- name: Set up JDK 17
39+
uses: actions/setup-java@v6
40+
with:
41+
java-version: '17'
42+
distribution: 'temurin'
43+
cache: maven
44+
45+
- name: Initialize CodeQL
46+
uses: github/codeql-action/init@v4
47+
with:
48+
languages: java-kotlin
49+
build-mode: manual
50+
51+
# Skip checkstyle/Error Prone/tests/invoker ITs here: this build only needs to
52+
# produce compiled classes for CodeQL to analyze, not to enforce project lint rules.
53+
- name: Build for CodeQL analysis
54+
run: >
55+
mvn --batch-mode --file pom.xml
56+
-Dcheckstyle.skip=true
57+
-Dcheck.skip-errorprone=true
58+
-Dmaven.test.skip=true
59+
clean compile
60+
61+
- name: Perform CodeQL Analysis
62+
uses: github/codeql-action/analyze@v4
63+
with:
64+
category: "/language:java-kotlin"
65+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Dependency Report
2+
3+
on:
4+
schedule:
5+
- cron: '0 6 * * 1'
6+
workflow_dispatch: {}
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
13+
report:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Check out repository (incl. font submodules)
17+
uses: actions/checkout@v7
18+
with:
19+
submodules: recursive
20+
fetch-depth: 1
21+
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v6
24+
with:
25+
java-version: '17'
26+
distribution: 'temurin'
27+
cache: maven
28+
29+
# Report-only: versions-maven-plugin never fails the build, it only prints
30+
# what's outdated. No pull requests, no issues - just a workflow summary.
31+
- name: Report outdated dependencies & plugins
32+
run: |
33+
{
34+
echo "## Outdated dependencies & plugins"
35+
echo
36+
echo '```text'
37+
mvn --batch-mode --file pom.xml versions:display-dependency-updates versions:display-plugin-updates
38+
echo '```'
39+
} >> "$GITHUB_STEP_SUMMARY"

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
**/.classpath
2+
**/.project
3+
**/.settings
4+
**/bin/
5+
**/target/
6+
**/.eclipse-pmd
7+
**/.pmd
8+
**/.pmdruleset.xml
9+
**/NOTES.txt
10+
*.iml
11+
.checkstyle
12+
.idea/*
13+
!.idea/icon.svg
14+
.~lock*
15+
*.kate-swp
16+

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "figlet-fonts-xero/src/main/resources/fonts"]
2+
path = figlet-fonts-xero/src/main/resources/fonts
3+
url = https://github.com/xero/figlet-fonts

.idea/icon.svg

Lines changed: 17 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
wrapperVersion=3.3.4
2+
distributionType=only-script
3+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip

0 commit comments

Comments
 (0)