2 Commits

Author SHA1 Message Date
olemorud
8f0e275979 [refactor] Simplify regex 2023-03-16 14:46:36 +01:00
olemorud
4c3b4df0ad DO NOT SHIP THIS COMMIT 2023-03-14 17:25:50 +01:00
6 changed files with 22 additions and 22 deletions

View File

@@ -23,7 +23,7 @@ jobs:
- name: Apply problem matcher - name: Apply problem matcher
uses: ./ uses: ./
with: with:
build-directory: build/ build-directory: ""
- name: Test problem matcher - name: Test problem matcher
run: | run: |

View File

@@ -1,5 +1,7 @@
# GCC problem matcher # GCC problem matcher
# DO NOT COMMIT THIS LINE
Creates annotations for warnings and errors in gcc builds. Creates annotations for warnings and errors in gcc builds.
## Inputs ## Inputs

View File

@@ -4,13 +4,12 @@
"owner": "gcc-problem-matcher", "owner": "gcc-problem-matcher",
"pattern": [ "pattern": [
{ {
"regexp": "^(${{ BASE }}\\/?)(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$", "regexp": "^\\s*${{ BASE }}\/?(.*?):(\\d+):(\\d+):.*?(warning|error): (.*)$"
"fromPath": 1, "file": 1,
"file": 2, "line": 2,
"line": 3, "column": 3,
"column": 4, "severity": 4,
"severity": 5, "message": 5
"message": 6
} }
] ]
} }

6
dist/index.js vendored
View File

@@ -2848,7 +2848,7 @@ const core = __nccwpck_require__(127);
// escapeRegExp :: string => string // escapeRegExp :: string => string
// escape all characters with special meanings in regexp // escape all characters with special meanings in regexp
const escapeRegExp = (s) => const escapeRegExp = (s) =>
s.replace(/[/\-^$*+?.()|[\]{}]/g, "\\\\$&"); s.replace(/[/\-^$*+?.()|[\]{}]/g, "\\$&");
// variable :: string => RegExp // variable :: string => RegExp
// create regex to match ${{ key }} // create regex to match ${{ key }}
@@ -2859,12 +2859,12 @@ const variable = (key) =>
const templatePath = __nccwpck_require__.ab + "gcc_matcher.jsontemplate"; const templatePath = __nccwpck_require__.ab + "gcc_matcher.jsontemplate";
// matcherPath :: string // matcherPath :: string
const outputPath = __nccwpck_require__.ab + "gcc_matcher.json"; const matcherPath = __nccwpck_require__.ab + "gcc_matcher.json";
// rootdir :: string // rootdir :: string
const rootdir = core.getInput('build-directory', {required: false}); const rootdir = core.getInput('build-directory', {required: false});
// parse :: string => string => Error | null // parse :: IO() => IO() => Error | null
const parse = (templatePath) => (matcherPath) => { const parse = (templatePath) => (matcherPath) => {
const content = fs.readFileSync(templatePath, 'utf-8'); const content = fs.readFileSync(templatePath, 'utf-8');

View File

@@ -4,13 +4,12 @@
"owner": "gcc-problem-matcher", "owner": "gcc-problem-matcher",
"pattern": [ "pattern": [
{ {
"regexp": "^(${{ BASE }}\\/?)(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$", "regexp": "^\\s*${{ BASE }}\/?(.*?):(\\d+):(\\d+):.*?(warning|error): (.*)$"
"fromPath": 1, "file": 1,
"file": 2, "line": 2,
"line": 3, "column": 3,
"column": 4, "severity": 4,
"severity": 5, "message": 5
"message": 6
} }
] ]
} }

View File

@@ -5,7 +5,7 @@ const core = require('@actions/core');
// escapeRegExp :: string => string // escapeRegExp :: string => string
// escape all characters with special meanings in regexp // escape all characters with special meanings in regexp
const escapeRegExp = (s) => const escapeRegExp = (s) =>
s.replace(/[/\-^$*+?.()|[\]{}]/g, "\\\\$&"); s.replace(/[/\-^$*+?.()|[\]{}]/g, "\\$&");
// variable :: string => RegExp // variable :: string => RegExp
// create regex to match ${{ key }} // create regex to match ${{ key }}
@@ -16,12 +16,12 @@ const variable = (key) =>
const templatePath = path.join(__dirname, "gcc_matcher.jsontemplate"); const templatePath = path.join(__dirname, "gcc_matcher.jsontemplate");
// matcherPath :: string // matcherPath :: string
const outputPath = path.join(__dirname, "gcc_matcher.json"); const matcherPath = path.join(__dirname, "gcc_matcher.json");
// rootdir :: string // rootdir :: string
const rootdir = core.getInput('build-directory', {required: false}); const rootdir = core.getInput('build-directory', {required: false});
// parse :: string => string => Error | null // parse :: IO() => IO() => Error | null
const parse = (templatePath) => (matcherPath) => { const parse = (templatePath) => (matcherPath) => {
const content = fs.readFileSync(templatePath, 'utf-8'); const content = fs.readFileSync(templatePath, 'utf-8');
@@ -34,7 +34,7 @@ const parse = (templatePath) => (matcherPath) => {
// main: // main:
try { try {
parse(templatePath)(outputPath); parse(templatePath)(matcherPath);
} catch (err) { } catch (err) {
core.setFailed(`Action failed with error ${err}`) core.setFailed(`Action failed with error ${err}`)
} }