diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-19 19:12:05 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-19 19:12:05 +0200 |
| commit | 6fdb31d538269136415ce71cbf58de6017f95463 (patch) | |
| tree | a37e51bdaf4783bce22cf121061d71e69ea2a862 /sb_builder/__main__.py | |
| parent | fb64c88bb8672ee9bdb8172eec0252966d67404a (diff) | |
| download | sb-builder-6fdb31d538269136415ce71cbf58de6017f95463.tar.gz sb-builder-6fdb31d538269136415ce71cbf58de6017f95463.zip | |
Add the PyQt6 GUI: Dashboard, Jobs, VM control, notifications
All VM access goes through remote.py (ssh with a shared ControlMaster,
local virsh). The main window polls jobs, backs off while ssh is down,
checks the libvirt domain and offers Start or Resume, and sends
freedesktop notifications when a job ends or the VM comes up. The Jobs
tab streams a job's log with job-follow and resumes at the last offset
after a drop. Config is TOML, validated against built-in defaults.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'sb_builder/__main__.py')
| -rw-r--r-- | sb_builder/__main__.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sb_builder/__main__.py b/sb_builder/__main__.py new file mode 100644 index 0000000..5a78b64 --- /dev/null +++ b/sb_builder/__main__.py @@ -0,0 +1,41 @@ +# sb-builder - entry point +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +"""Entry point: python3 -m sb_builder.""" + +import sys + +from PyQt6.QtWidgets import QApplication, QMessageBox + +from . import config +from .mainwindow import MainWindow +from .remote import Remote + + +def main(): + app = QApplication(sys.argv) + app.setApplicationName("sb-builder") + cfg, err = config.load() + w = MainWindow(cfg, Remote(cfg)) + w.resize(1100, 700) + w.show() + if err: + QMessageBox.warning(w, "Config error", f"{err}\nUsing defaults.") + return app.exec() + + +if __name__ == "__main__": + sys.exit(main()) |
