diff options
-rw-r--r-- | interface-definitions/beep-on-boot.xml.in | 21 | ||||
-rw-r--r-- | interface-definitions/system-options.xml.in | 8 | ||||
-rwxr-xr-x | src/conf_mode/beep_if_fully_booted.py | 42 | ||||
-rwxr-xr-x | src/conf_mode/system-options.py | 7 | ||||
-rw-r--r-- | src/systemd/vyos-beep.service | 11 |
5 files changed, 25 insertions, 64 deletions
diff --git a/interface-definitions/beep-on-boot.xml.in b/interface-definitions/beep-on-boot.xml.in deleted file mode 100644 index 0da7d0de4..000000000 --- a/interface-definitions/beep-on-boot.xml.in +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> - -<!-- beep once the login target has been reached --> - -<interfaceDefinition> - <node name="system"> - <children> - <node name="options"> - <children> - <leafNode name="beep-if-fully-booted" owner="${vyos_conf_scripts_dir}/beep_if_fully_booted.py"> - <properties> - <help>plays sound via system speaker when you can login</help> - <valueless/> - <priority>9999</priority> - </properties> - </leafNode> - </children> - </node> - </children> - </node> -</interfaceDefinition> diff --git a/interface-definitions/system-options.xml.in b/interface-definitions/system-options.xml.in index 5fa0635bd..48bc353ab 100644 --- a/interface-definitions/system-options.xml.in +++ b/interface-definitions/system-options.xml.in @@ -5,9 +5,15 @@ <node name="options" owner="${vyos_conf_scripts_dir}/system-options.py"> <properties> <help>System Options</help> - <priority>400</priority> + <priority>9999</priority> </properties> <children> + <leafNode name="beep-if-fully-booted"> + <properties> + <help>plays sound via system speaker when you can login</help> + <valueless/> + </properties> + </leafNode> <leafNode name="ctrl-alt-del-action"> <properties> <help>Ctrl-Alt-Delete action</help> diff --git a/src/conf_mode/beep_if_fully_booted.py b/src/conf_mode/beep_if_fully_booted.py deleted file mode 100755 index f00fcabd0..000000000 --- a/src/conf_mode/beep_if_fully_booted.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2018 VyOS maintainers and contributors -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 or later 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, see <http://www.gnu.org/licenses/>. -# -# - -import sys -import os - -from vyos.config import Config -from vyos import ConfigError - -def get_config(): - conf = Config() - if not conf.exists('system options beep-if-fully-booted'): - return None - - return True - -def apply(status): - if status is not None: - os.system('/usr/bin/beep -f 130 -l 100 -n -f 262 -l 100 -n -f 330 -l 100 -n -f 392 -l 100 -n -f 523 -l 100 -n -f 660 -l 100 -n -f 784 -l 300 -n -f 660 -l 300') - -if __name__ == '__main__': - try: - c = get_config() - apply(c) - except ConfigError as e: - print(e) - sys.exit(1) diff --git a/src/conf_mode/system-options.py b/src/conf_mode/system-options.py index 4c809d044..74c34e19f 100755 --- a/src/conf_mode/system-options.py +++ b/src/conf_mode/system-options.py @@ -24,6 +24,7 @@ from vyos import ConfigError systemd_ctrl_alt_del = '/lib/systemd/system/ctrl-alt-del.target' default_config_data = { + 'beep_if_fully_booted': False, 'ctrl_alt_del': 'ignore', 'reboot_on_panic': True } @@ -36,6 +37,7 @@ def get_config(): if conf.exists('ctrl-alt-del-action'): opt['ctrl_alt_del'] = conf.return_value('ctrl-alt-del-action') + opt['beep_if_fully_booted'] = conf.exists('beep-if-fully-booted') opt['reboot_on_panic'] = conf.exists('reboot-on-panic') return opt @@ -47,6 +49,11 @@ def generate(opt): pass def apply(opt): + # Beep action + if opt['beep_if_fully_booted']: + os.system('systemctl enable vyos-beep.service >/dev/null 2>&1') + else: + os.system('systemctl disable vyos-beep.service >/dev/null 2>&1') # Ctrl-Alt-Delete action if opt['ctrl_alt_del'] == 'ignore': diff --git a/src/systemd/vyos-beep.service b/src/systemd/vyos-beep.service new file mode 100644 index 000000000..f8f27f924 --- /dev/null +++ b/src/systemd/vyos-beep.service @@ -0,0 +1,11 @@ +[Unit] +Description=Beep after system start +DefaultDependencies=no +After=multi-user.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/beep -f 130 -l 100 -n -f 262 -l 100 -n -f 330 -l 100 -n -f 392 -l 100 -n -f 523 -l 100 -n -f 660 -l 100 -n -f 784 -l 300 -n -f 660 -l 300 + +[Install] +WantedBy=multi-user.target |