diff --git a/packages/stakers/src/stakerComponent.ts b/packages/stakers/src/stakerComponent.ts index f6e42942a..48cd8bcd5 100644 --- a/packages/stakers/src/stakerComponent.ts +++ b/packages/stakers/src/stakerComponent.ts @@ -139,18 +139,33 @@ export class StakerComponent { isInstalled: boolean; userSettings: UserSettings; }): Promise { - let forceRecreate = false; - // ensure pkg installed - if (!isInstalled) + if (isInstalled) { + await this.setInstalledStakerPkgConfig({ dnpName, userSettings }); + } else { await packageInstall(this.dappnodeInstaller, { name: dnpName, userSettings: userSettings ? { [dnpName]: userSettings } : {} }); - else if (userSettings) { + } + } + + private async setInstalledStakerPkgConfig({ + dnpName, + userSettings + }: { + dnpName: string; + userSettings: UserSettings; + }): Promise { + let forceRecreate = false; + + if (userSettings) { const composeEditor = new ComposeFileEditor(dnpName, false); - const userSettingsPrev: UserSettingsAllDnps = {}; - userSettingsPrev[dnpName] = composeEditor.getUserSettings(); - if (!isMatch(userSettingsPrev, userSettings)) { + + const previousSettings: UserSettingsAllDnps = { + [dnpName]: composeEditor.getUserSettings() + }; + + if (!isMatch(previousSettings, userSettings)) { composeEditor.applyUserSettings(userSettings, { dnpName }); composeEditor.write(); forceRecreate = true; // Only recreate if userSettings changed