added possibility to ignore MagicMirror repo in updatenotification (#3002)

was [requested in the
forum](https://forum.magicmirror.builders/topic/17519/updatenotification).

- added possibility to exclude MagicMirror Repo and renamed it from
`default` to `MagicMirror`
- improved getting `behind` in case a hard `git fetch` was already done
- removed test "excludes repo if refs don't match regex" because of
above improvement this case is obsolete
- improved `git fetch --dry-run` with `-n` option to exclude tags (noise
reduction)
This commit is contained in:
Karsten Hassel
2023-01-12 09:14:20 +01:00
committed by GitHub
parent 877f8ad380
commit 29e3ec06cb
7 changed files with 22 additions and 24 deletions

View File

@@ -36,7 +36,7 @@ class GitHelper {
async add(moduleName) {
let moduleFolder = BASE_DIR;
if (moduleName !== "default") {
if (moduleName !== "MagicMirror") {
moduleFolder = `${moduleFolder}modules/${moduleName}`;
}
@@ -68,7 +68,7 @@ class GitHelper {
isBehindInStatus: false
};
if (repo.module === "default") {
if (repo.module === "MagicMirror") {
// the hash is only needed for the mm repo
const { stderr, stdout } = await this.execShell(`cd ${repo.folder} && git rev-parse HEAD`);
@@ -121,7 +121,7 @@ class GitHelper {
return gitInfo;
}
const { stderr } = await this.execShell(`cd ${repo.folder} && git fetch --dry-run`);
const { stderr } = await this.execShell(`cd ${repo.folder} && git fetch -n --dry-run`);
// example output:
// From https://github.com/MichMich/MagicMirror
@@ -129,14 +129,16 @@ class GitHelper {
// here the result is in stderr (this is a git default, don't ask why ...)
const matches = stderr.match(this.getRefRegex(gitInfo.current));
if (!matches || !matches[0]) {
// no refs found, nothing to do
return;
// this is the default if there was no match from "git fetch -n --dry-run".
// Its a fallback because if there was a real "git fetch", the above "git fetch -n --dry-run" would deliver nothing.
let refDiff = gitInfo.current + "..origin/" + gitInfo.current;
if (matches && matches[0]) {
refDiff = matches[0];
}
// get behind with refs
try {
const { stdout } = await this.execShell(`cd ${repo.folder} && git rev-list --ancestry-path --count ${matches[0]}`);
const { stdout } = await this.execShell(`cd ${repo.folder} && git rev-list --ancestry-path --count ${refDiff}`);
gitInfo.behind = parseInt(stdout);
return gitInfo;

View File

@@ -19,7 +19,9 @@ module.exports = NodeHelper.create({
}
}
await this.gitHelper.add("default");
if (!this.ignoreUpdateChecking("MagicMirror")) {
await this.gitHelper.add("MagicMirror");
}
},
async socketNotificationReceived(notification, payload) {

View File

@@ -77,7 +77,7 @@ Module.register("updatenotification", {
addFilters() {
this.nunjucksEnvironment().addFilter("diffLink", (text, status) => {
if (status.module !== "default") {
if (status.module !== "MagicMirror") {
return text;
}

View File

@@ -3,7 +3,7 @@
<div class="small bright">
<i class="fas fa-exclamation-circle"></i>
<span>
{% set mainTextLabel = "UPDATE_NOTIFICATION" if name === "default" else "UPDATE_NOTIFICATION_MODULE" %}
{% set mainTextLabel = "UPDATE_NOTIFICATION" if name === "MagicMirror" else "UPDATE_NOTIFICATION_MODULE" %}
{{ mainTextLabel | translate({MODULE_NAME: name}) }}
</span>
</div>