3 Commits

Author SHA1 Message Date
olemorud
31f5585936 test 2023-03-15 14:06:00 +01:00
olemorud
e413405c42 npm run build 2023-03-15 10:50:41 +01:00
olemorud
e758cb8cf0 Add fromPath to matcher template 2023-03-15 10:49:48 +01:00
5 changed files with 24 additions and 27 deletions

View File

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

View File

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

15
dist/index.js vendored
View File

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

View File

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

View File

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