Дерево страниц

Основные функции

Узнаём количество подключенных мониторов к TRASSIR OS


Установка

  • Перейти в автоматизацию, нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
  • Снять галочку «Включить скрипт» и нажать сохранить, запустить.
  • Ниже видим отработку скрипта


# -*- coding: utf-8 -*-
# This script check connected monitors
#
# Script is available only for TrassirOS
#
# Version: 0.1
# Author: A.A.Trubilin, DSSL
# E-mail: a.trubilin@dssl.ru
"""
<parameters>
    <company>AATrubilin</company>
    <title>check_monitors</title>
    <version>0.1</version>

    <parameter>
        <type>string</type>
        <id>XORG_LOG_PATH</id>
        <name>Путь до файла Xorg.0.log</name>
        <value>/var/log/Xorg.0.log</value>
    </parameter>
</parameters>
"""
import os
import subprocess

import host


class Result(Exception):
    pass


def show_log(xorg_path):
    """

    Args:
        xorg_path (str): Path to Xorg.0.log file

    Raises:
        RuntimeError: if shell command finished with error
        Result: if shell command finished with success
    """
    command = "cat {xorg_path} | grep connect".format(xorg_path=xorg_path)
    sp = subprocess.Popen(
        command,
        stdin=subprocess.PIPE,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        shell=True,
    )
    out, err = sp.communicate()
    if err:
        raise RuntimeError(err)
    else:
        res = ""
        for row in out.split("\n"):
            if " connected" in row:
                color = "#009900"
            else:
                color = "#000000"
            res += """<br><span style="color: {color}">{text}</span>""".format(
                color=color, text=row
            )

        raise Result(res)


if __name__ == host.stats().parent().guid:
    if os.name == "nt":
        raise OSError("Script is available only for TrassirOS")

    GLOBALS = globals()
    XORG_LOG_PATH = GLOBALS.get("XORG_LOG_PATH", "/var/log/Xorg.0.log")
    show_log(XORG_LOG_PATH)


 Скачать