mirror of
https://github.com/netinvent/npbackup.git
synced 2025-10-27 13:57:26 +08:00
Add gui option to create a windows scheduled task
This commit is contained in:
parent
fa28343084
commit
00c30c1731
7 changed files with 65 additions and 6 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
- Added a full auto-upgrade solution:
|
- Added a full auto-upgrade solution:
|
||||||
- Aupgrade client integrated into NPBackup, that can be called manually via --auto-upgrade or automatically run every n backups
|
- Aupgrade client integrated into NPBackup, that can be called manually via --auto-upgrade or automatically run every n backups
|
||||||
- Upgrade server which servers files and their metadata
|
- Upgrade server which servers files and their metadata
|
||||||
|
- Added a gui to create a scheduled task under Windows
|
||||||
- Improved setup.py to provide launch scripts for both Linux and Windows platforms
|
- Improved setup.py to provide launch scripts for both Linux and Windows platforms
|
||||||
- Made windows cloud file filter optional (enabled by default)
|
- Made windows cloud file filter optional (enabled by default)
|
||||||
- Added default configuration settings
|
- Added default configuration settings
|
||||||
|
|
|
||||||
2
TODO.md
2
TODO.md
|
|
@ -30,4 +30,4 @@ rest:https://user:***@good.example.tld/user/
|
||||||
|
|
||||||
- Linux installer script
|
- Linux installer script
|
||||||
- Windows installer GUI
|
- Windows installer GUI
|
||||||
- Create task from GUI
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,13 @@ __license__ = "GPL-3.0-only"
|
||||||
__build__ = "2023020101"
|
__build__ = "2023020101"
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import os
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
import PySimpleGUI as sg
|
import PySimpleGUI as sg
|
||||||
import npbackup.configuration as configuration
|
import npbackup.configuration as configuration
|
||||||
from npbackup.core.i18n_helper import _t
|
from npbackup.core.i18n_helper import _t
|
||||||
|
from npbackup.windows.task import create_scheduled_task
|
||||||
|
from npbackup.path_helper import CURRENT_EXECUTABLE
|
||||||
|
|
||||||
|
|
||||||
logger = getLogger(__intname__)
|
logger = getLogger(__intname__)
|
||||||
|
|
@ -315,6 +317,18 @@ def config_gui(config_dict: dict, config_file: str):
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
scheduled_task_col = [
|
||||||
|
[
|
||||||
|
sg.Text(_t("config_gui.create_scheduled_task_every")),
|
||||||
|
sg.Input(key="scheduled_task_interval", size=(4, 1)),
|
||||||
|
sg.Text(_t("generic.minutes")),
|
||||||
|
sg.Button(_t("generic.create"), key="create_task")
|
||||||
|
],
|
||||||
|
[
|
||||||
|
sg.Text(_t("config_gui.scheduled_task_explanation"))
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
buttons = [
|
buttons = [
|
||||||
[
|
[
|
||||||
sg.Text(" " * 135),
|
sg.Text(" " * 135),
|
||||||
|
|
@ -369,6 +383,15 @@ def config_gui(config_dict: dict, config_file: str):
|
||||||
element_justification="C",
|
element_justification="C",
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
sg.Tab(
|
||||||
|
_t("generic.scheduled_task"),
|
||||||
|
scheduled_task_col,
|
||||||
|
font="helvetica 16",
|
||||||
|
key="--tab-scheduled_task--",
|
||||||
|
element_justification="C",
|
||||||
|
)
|
||||||
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
layout = [
|
layout = [
|
||||||
|
|
@ -411,5 +434,14 @@ def config_gui(config_dict: dict, config_file: str):
|
||||||
update_gui(window, config_dict, unencrypted=True)
|
update_gui(window, config_dict, unencrypted=True)
|
||||||
else:
|
else:
|
||||||
sg.PopupError(_t("config_gui.wrong_password"))
|
sg.PopupError(_t("config_gui.wrong_password"))
|
||||||
|
if event == "create_task":
|
||||||
|
if os.name == 'nt':
|
||||||
|
result = create_scheduled_task(CURRENT_EXECUTABLE, values['scheduled_task_interval'])
|
||||||
|
if result:
|
||||||
|
sg.Popup(_t("config_gui.scheduled_task_creation_success"))
|
||||||
|
else:
|
||||||
|
sg.PopupError(_t("config_gui.scheduled_task_creation_failure"))
|
||||||
|
else:
|
||||||
|
sg.PopupError(_t("config_gui.scheduled_task_creation_failure"))
|
||||||
window.close()
|
window.close()
|
||||||
return config_dict
|
return config_dict
|
||||||
|
|
|
||||||
|
|
@ -58,4 +58,9 @@ en:
|
||||||
auto_upgrade_interval: Auto upgrade interval
|
auto_upgrade_interval: Auto upgrade interval
|
||||||
auto_upgrade_launch: Launch auto upgrade
|
auto_upgrade_launch: Launch auto upgrade
|
||||||
auto_ugprade_will_quit: Warning, launching an upgrade procedure will quit this program without notice. You will have to wait 5 minutes before launching it again for the upgrade to complete
|
auto_ugprade_will_quit: Warning, launching an upgrade procedure will quit this program without notice. You will have to wait 5 minutes before launching it again for the upgrade to complete
|
||||||
auto_upgrade_failed: Auto upgrade procedure failed, see logs for further details
|
auto_upgrade_failed: Auto upgrade procedure failed, see logs for further details
|
||||||
|
|
||||||
|
create_scheduled_task_every: Create scheduled task every
|
||||||
|
scheduled_task_explanation: This is for Windows only. On Linux, please create a crontab entry with `npbackup --backup --config-file /etc/npbackup.conf`
|
||||||
|
scheduled_task_creation_success: Scheduled task created successfuly
|
||||||
|
scheduled_task_creation_failure: Scheduled task could not be created. See logs for further info
|
||||||
|
|
@ -58,4 +58,9 @@ fr:
|
||||||
auto_upgrade_interval: Intervalle de mise à niveau
|
auto_upgrade_interval: Intervalle de mise à niveau
|
||||||
auto_upgrade_launch: Lancer une mise à niveau
|
auto_upgrade_launch: Lancer une mise à niveau
|
||||||
auto_ugprade_will_quit: Attnetion, la procédure de mise à niveau va quitter ce programme sans notification. Vous devrez attendre 5 minutes pour laisser la procédure se terminer avant de relancer le programme
|
auto_ugprade_will_quit: Attnetion, la procédure de mise à niveau va quitter ce programme sans notification. Vous devrez attendre 5 minutes pour laisser la procédure se terminer avant de relancer le programme
|
||||||
auto_upgrade_failed: Procédure de mise à niveau échouée, veuillez consulter les journaux pour plus de détails
|
auto_upgrade_failed: Procédure de mise à niveau échouée, veuillez consulter les journaux pour plus de détails
|
||||||
|
|
||||||
|
create_scheduled_task_every: Créer une tâche planifiée toutes les
|
||||||
|
scheduled_task_explanation: Uniquement sous Windows. Sous Linux, merci de créer une entrée crontab comme `npbackup --backup --config-file /etc/npbackup.conf`
|
||||||
|
scheduled_task_creation_success: Tâche planifiée crée avec succès
|
||||||
|
scheduled_task_creation_failure: Impossible de créer la tâche planifiée. Veuillez consulter les journaux pour plus de détails
|
||||||
|
|
@ -5,11 +5,14 @@ en:
|
||||||
configure: Configure
|
configure: Configure
|
||||||
about: About
|
about: About
|
||||||
options: Options
|
options: Options
|
||||||
|
create: Create
|
||||||
|
|
||||||
_yes: Yes
|
_yes: Yes
|
||||||
_no: No
|
_no: No
|
||||||
|
|
||||||
seconds: seconds
|
seconds: seconds
|
||||||
|
minutes: minutes
|
||||||
|
hours: hours
|
||||||
|
|
||||||
group: Group
|
group: Group
|
||||||
|
|
||||||
|
|
@ -29,4 +32,9 @@ en:
|
||||||
decrypt: Decrypt
|
decrypt: Decrypt
|
||||||
encrypt: Encrypt
|
encrypt: Encrypt
|
||||||
|
|
||||||
is_uptodate: Program Uptodateu
|
is_uptodate: Program Uptodate
|
||||||
|
|
||||||
|
succes: Succes
|
||||||
|
failure: Failure
|
||||||
|
|
||||||
|
scheduled_task: Scheduled task
|
||||||
|
|
@ -5,11 +5,14 @@ fr:
|
||||||
configure: Configurer
|
configure: Configurer
|
||||||
about: A propos
|
about: A propos
|
||||||
options: Options
|
options: Options
|
||||||
|
create: Créer
|
||||||
|
|
||||||
_yes: Oui
|
_yes: Oui
|
||||||
_no: Non
|
_no: Non
|
||||||
|
|
||||||
seconds: secondes
|
seconds: secondes
|
||||||
|
minutes: minutes
|
||||||
|
hours: heures
|
||||||
|
|
||||||
group: Groupe
|
group: Groupe
|
||||||
|
|
||||||
|
|
@ -29,4 +32,9 @@ fr:
|
||||||
decrypt: Déchiffrer
|
decrypt: Déchiffrer
|
||||||
encrypt: Chiffrer
|
encrypt: Chiffrer
|
||||||
|
|
||||||
is_uptodate: Logiciel à jour
|
is_uptodate: Logiciel à jour
|
||||||
|
|
||||||
|
succes: Succès
|
||||||
|
failure: Echec
|
||||||
|
|
||||||
|
scheduled_task: Tâche planifiée
|
||||||
Loading…
Add table
Reference in a new issue