12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/usr/bin/env python3
- import signal
- import subprocess
- signal.signal(signal.SIGINT, signal.SIG_DFL)
- signal.signal(signal.SIGTERM, signal.SIG_DFL)
- from PyQt5.QtCore import QTimer
- from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
- from openpilot.selfdrive.ui.qt.python_helpers import set_main_window
- class Window(QWidget):
- def __init__(self, parent=None):
- super().__init__(parent)
- layout = QVBoxLayout()
- self.setLayout(layout)
- self.l = QLabel("jenkins runner")
- layout.addWidget(self.l)
- layout.addStretch(1)
- layout.setContentsMargins(20, 20, 20, 20)
- cmds = [
- "cat /etc/hostname",
- "echo AGNOS v$(cat /VERSION)",
- "uptime -p",
- ]
- self.labels = {}
- for c in cmds:
- self.labels[c] = QLabel(c)
- layout.addWidget(self.labels[c])
- self.setStyleSheet("""
- * {
- color: white;
- font-size: 55px;
- background-color: black;
- font-family: "JetBrains Mono";
- }
- """)
- self.timer = QTimer()
- self.timer.timeout.connect(self.update)
- self.timer.start(10 * 1000)
- self.update()
- def update(self):
- for cmd, label in self.labels.items():
- out = subprocess.run(cmd, capture_output=True,
- shell=True, check=False, encoding='utf8').stdout
- label.setText(out.strip())
- if __name__ == "__main__":
- app = QApplication([])
- w = Window()
- set_main_window(w)
- app.exec_()
|