-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
33 lines (29 loc) · 1.05 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const core = require('@actions/core');
const recursiveReaddir = require('recursive-readdir');
const matter = require('gray-matter');
const moment = require('moment');
const timeRangeInMinutes = core.getInput('interval', {required: true});
const endTime = moment.utc().seconds(0);
const startTime = endTime.clone().subtract(parseInt(timeRangeInMinutes), 'minutes');
const contentDir = core.getInput('content_directory', {default: ''});
async function run() {
core.setOutput('is_scheduled', false);
await recursiveReaddir(contentDir, ['!*.md']).then(files => {
for (i = 0; i < files.length; i++) {
if (shouldPublish(files[i])) {
core.setOutput('is_scheduled', true);
core.info(`${files[i]} is scheduled`);
return;
}
}
})
}
function shouldPublish(filename) {
const file = matter.read(filename);
if ('date' in file.data) {
const date = moment.utc(file.data.date);
return !date.isAfter(endTime) && date.isAfter(startTime);
}
return false;
}
run();