45 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-07-08 22:46:35 +02:00
// SPDX-FileCopyrightText: Night Theme Switcher Contributors
// SPDX-License-Identifier: GPL-3.0-or-later
import GLib from 'gi://GLib';
import * as debug from '../debug.js';
import { Time } from '../enums/Time.js';
import { Switcher } from './Switcher.js';
/**
* The Commands Switcher spawns commands according to the time.
*/
export class CommandsSwitcher extends Switcher {
#settings;
/**
* @param {object} params Params object.
* @param {Timer} params.timer Timer to listen to.
*/
constructor({ timer }) {
const settings = NTS.getSettings(`${NTS.metadata['settings-schema']}.commands`);
super({
name: 'Command',
timer,
settings,
callback: time => this.#onTimeChanged(time),
disableable: true,
});
this.#settings = settings;
}
#onTimeChanged(time) {
if (time === Time.UNKNOWN)
return;
const command = this.#settings.get_string(time === Time.DAY ? 'sunrise' : 'sunset');
if (!command)
return;
GLib.spawn_async(null, ['sh', '-c', command], null, GLib.SpawnFlags.SEARCH_PATH, null);
debug.message(`Spawned ${time} command.`);
}
}