|
1 | 1 | #!/usr/bin/env texlua |
| 2 | +---@diagnostic disable: lowercase-global |
| 3 | + |
| 4 | +-- Configuration file for use with "l3build" |
2 | 5 |
|
3 | 6 | module = "ustcthesis" |
4 | 7 |
|
@@ -29,37 +32,40 @@ typesetopts = "-file-line-error -halt-on-error -interaction=nonstopmode" |
29 | 32 |
|
30 | 33 | lvtext = ".tex" |
31 | 34 |
|
| 35 | +local package_repository = "https://github.com/ustctug/ustcthesis" |
| 36 | +local version_pattern = "[%d.]+[%l%d.-]*" |
| 37 | + |
32 | 38 | function update_tag(file, content, tagname, tagdate) |
33 | | - tagname = string.gsub(tagname, "^v", "") |
34 | | - local url = "https://github.com/ustctug/ustcthesis" |
| 39 | + local version = string.gsub(tagname, "^v", "") |
35 | 40 | local date = string.gsub(tagdate, "%-", "/") |
36 | 41 |
|
37 | 42 | content = string.gsub(content, |
38 | | - "Copyright %(C%) (%d%d%d%d)%-%d%d%d%d", |
| 43 | + "Copyright %(Cc%) (%d%d%d%d)%-+%d%d%d%d", |
39 | 44 | "Copyright (C) %1-" .. os.date("%Y")) |
40 | 45 |
|
41 | | - if string.match(file, "%.cls$") then |
42 | | - content = string.gsub(content, "\\newcommand\\ustcthesisversion{[0-9a-z.-]+", |
43 | | - "\\newcommand\\ustcthesisversion{" .. tagname) |
| 46 | + if file == "CHANGELOG.md" then |
| 47 | + local previous = string.match(content, "compare/v(" .. version_pattern .. ")%.%.%.HEAD") |
| 48 | + if version ~= previous then |
| 49 | + content = string.gsub(content, |
| 50 | + "## %[Unreleased%]", |
| 51 | + "## [Unreleased]\n\n## [" .. version .. "] - " .. tagdate) |
| 52 | + content = string.gsub(content, |
| 53 | + "v" .. version_pattern .. "%.%.%.HEAD", |
| 54 | + "v" .. version .. "...HEAD\n[" .. version .. "]: " .. package_repository .. "/compare/v" .. previous |
| 55 | + .. "...v" .. version) |
| 56 | + end |
| 57 | + |
| 58 | + elseif string.match(file, "%.cls$") then |
| 59 | + content = string.gsub(content, "\\newcommand\\ustcthesisversion{" .. version_pattern, |
| 60 | + "\\newcommand\\ustcthesisversion{" .. version) |
44 | 61 |
|
45 | 62 | content = string.gsub(content, "\\ProvidesClass{ustcthesis}%[%d%d%d%d/%d%d/%d%d", |
46 | 63 | "\\ProvidesClass{ustcthesis}[" .. date) |
47 | 64 |
|
48 | | - elseif string.match(file, "%-doc.tex") then |
49 | | - content = string.gsub(content, "v[0-9a-z.-]+\\qquad %d%d%d%d%-%d%d%-%d%d", |
50 | | - "v" .. tagname .. "\\qquad " .. tagdate) |
51 | | - |
52 | | - elseif string.match(file, "CHANGELOG.md") then |
53 | | - local previous = string.match(content, "/compare/v([0-9a-z.-]+)%.%.%.HEAD") |
54 | | - if tagname == previous then return content end |
55 | | - content = string.gsub(content, |
56 | | - "## %[Unreleased%]", |
57 | | - "## [Unreleased]\n\n## [" .. tagname .. "] - " .. tagdate) |
58 | | - |
59 | | - content = string.gsub(content, |
60 | | - previous:gsub("%.", "%%."):gsub("%-", "%%-") .. "%.%.%.HEAD", |
61 | | - tagname .. "...HEAD\n[" .. tagname .. "]: " .. url .. "/compare/v" |
62 | | - .. previous .. "...v" .. tagname) |
| 65 | + elseif string.match(file, "%-doc.tex$") then |
| 66 | + content = string.gsub(content, "v" .. version_pattern .. "\\qquad %d%d%d%d%-%d%d%-%d%d", |
| 67 | + "v" .. version .. "\\qquad " .. tagdate) |
| 68 | + |
63 | 69 | end |
64 | 70 | return content |
65 | 71 | end |
0 commit comments