Skip to content

Commit a7e514f

Browse files
committed
chore: initial commit
0 parents  commit a7e514f

File tree

21 files changed

+1660
-0
lines changed

21 files changed

+1660
-0
lines changed

.editorconfig

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
indent_style = space
10+
indent_size = tab
11+
tab_width = 4
12+
trim_trailing_whitespace = true
13+
insert_final_newline = true
14+
15+
[*.md]
16+
trim_trailing_whitespace = false
17+
18+
[*.{yml,yaml}]
19+
tab_width = 2
20+
21+
[Makefile]
22+
indent_style = tab
23+
24+
[*.el]
25+
tab_width = 2

.gitattributes

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Common settings that generally should always be used with your language specific settings
2+
3+
# Auto detect text files and perform LF normalization
4+
* text=auto
5+
6+
#
7+
# The above will handle all files NOT found below
8+
#
9+
10+
# Documents
11+
*.bibtex text diff=bibtex
12+
*.doc diff=astextplain
13+
*.DOC diff=astextplain
14+
*.docx diff=astextplain
15+
*.DOCX diff=astextplain
16+
*.dot diff=astextplain
17+
*.DOT diff=astextplain
18+
*.pdf diff=astextplain
19+
*.PDF diff=astextplain
20+
*.rtf diff=astextplain
21+
*.RTF diff=astextplain
22+
*.md text diff=markdown
23+
*.mdx text diff=markdown
24+
*.tex text diff=tex
25+
*.adoc text
26+
*.textile text
27+
*.mustache text
28+
*.csv text eol=crlf
29+
*.tab text
30+
*.tsv text
31+
*.txt text
32+
*.sql text
33+
*.epub diff=astextplain
34+
35+
# Graphics
36+
*.png binary
37+
*.jpg binary
38+
*.jpeg binary
39+
*.gif binary
40+
*.tif binary
41+
*.tiff binary
42+
*.ico binary
43+
# SVG treated as text by default.
44+
*.svg text
45+
# If you want to treat it as binary,
46+
# use the following line instead.
47+
# *.svg binary
48+
*.eps binary
49+
50+
# Scripts
51+
*.bash text eol=lf
52+
*.fish text eol=lf
53+
*.ksh text eol=lf
54+
*.sh text eol=lf
55+
*.zsh text eol=lf
56+
# These are explicitly windows files and should use crlf
57+
*.bat text eol=crlf
58+
*.cmd text eol=crlf
59+
*.ps1 text eol=crlf
60+
61+
# Serialisation
62+
*.json text
63+
*.toml text
64+
*.xml text
65+
*.yaml text
66+
*.yml text
67+
68+
# Archives
69+
*.7z binary
70+
*.bz binary
71+
*.bz2 binary
72+
*.bzip2 binary
73+
*.gz binary
74+
*.lz binary
75+
*.lzma binary
76+
*.rar binary
77+
*.tar binary
78+
*.taz binary
79+
*.tbz binary
80+
*.tbz2 binary
81+
*.tgz binary
82+
*.tlz binary
83+
*.txz binary
84+
*.xz binary
85+
*.Z binary
86+
*.zip binary
87+
*.zst binary
88+
89+
# Text files where line endings should be preserved
90+
*.patch -text
91+
92+
#
93+
# Exclude files from exporting
94+
#
95+
96+
.gitattributes export-ignore
97+
.gitignore export-ignore
98+
.gitkeep export-ignore
99+
100+
# Basic .gitattributes for a Lua repo.
101+
102+
# Source files
103+
# ============
104+
*.lua text
105+
106+
# Luadoc output
107+
# =============
108+
*.html text diff=html
109+
*.css text diff=css

.github/workflows/ci.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- "**"
7+
push:
8+
branches:
9+
- master
10+
workflow_call:
11+
12+
jobs:
13+
checks:
14+
name: Run Checks
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v5
20+
with:
21+
fetch-depth: 0

.github/workflows/release.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*.*.*"
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
checks:
14+
name: Run Checks
15+
uses: ./.github/workflows/ci.yml
16+
17+
release:
18+
name: Create Release
19+
needs: checks
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v5
24+
with:
25+
fetch-depth: 0
26+
27+
- name: Extract tag
28+
id: extract_tag
29+
run: |
30+
TAG=${GITHUB_REF#refs/tags/}
31+
echo "tag=$TAG" >> $GITHUB_OUTPUT
32+
echo "Tag: $TAG"
33+
34+
- name: Install tools
35+
uses: taiki-e/install-action@v2
36+
with:
37+
tool: git-cliff,typos-cli
38+
39+
- name: Generate changelog and release notes
40+
run: |
41+
./scripts/generate-changelog.sh
42+
./scripts/generate-release-notes.sh
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
46+
- name: Bump version
47+
run: ./scripts/bump-version.sh ${{ steps.extract_tag.outputs.tag }}
48+
49+
- name: Commit and push changes
50+
run: ./scripts/commit.sh ${{ steps.extract_tag.outputs.tag }}
51+
52+
- name: Create GitHub Release
53+
uses: softprops/action-gh-release@v1
54+
with:
55+
body_path: RELEASE_NOTES.md
56+
draft: false
57+
prerelease: false

.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Compiled Lua sources
2+
luac.out
3+
4+
# luarocks build files
5+
*.src.rock
6+
*.zip
7+
*.tar.gz
8+
9+
# Object files
10+
*.o
11+
*.os
12+
*.ko
13+
*.obj
14+
*.elf
15+
16+
# Precompiled Headers
17+
*.gch
18+
*.pch
19+
20+
# Libraries
21+
*.lib
22+
*.a
23+
*.la
24+
*.lo
25+
*.def
26+
*.exp
27+
28+
# Shared objects (inc. Windows DLLs)
29+
*.dll
30+
*.so
31+
*.so.*
32+
*.dylib
33+
34+
# Executables
35+
*.exe
36+
*.out
37+
*.app
38+
*.i*86
39+
*.x86_64
40+
*.hex
41+

.markdownlint.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Markdownlint configuration
2+
# https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md
3+
4+
extends: null
5+
default: true
6+
7+
# Rule overrides
8+
MD013: # Line length
9+
line_length: 100
10+
headings: false
11+
tables: false
12+
code_blocks: false
13+
14+
MD024: # Multiple headings with the same content
15+
siblings_only: true
16+
17+
MD033: # Allow inline HTML
18+
allowed_elements:
19+
- "br"
20+
- "sub"
21+
- "sup"
22+
- "kbd"
23+
- "details"
24+
- "summary"
25+
- "img"
26+
27+
MD041: false # First line in file should be a top level heading
28+
29+
MD046: # Code block style
30+
style: fenced
31+
32+
MD036: false # Emphasis used instead of a heading
33+
34+
MD025: false # Multiple top level headings in the same document
35+
36+
MD034: false # Bare URL used
37+
38+
MD026: # Trailing punctuation in heading
39+
punctuation: ".,;:!"

.prettierrc.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"trailingComma": "all",
3+
"printWidth": 80,
4+
"semi": true,
5+
"singleQuote": false,
6+
"bracketSpacing": true,
7+
"bracketSameLine": false,
8+
"arrowParens": "always"
9+
}

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"Lua.diagnostics.globals": ["vim"]
3+
}

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Norgate AV
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)