summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface-definitions/beep-on-boot.xml.in21
-rw-r--r--interface-definitions/system-options.xml.in8
-rwxr-xr-xsrc/conf_mode/beep_if_fully_booted.py42
-rwxr-xr-xsrc/conf_mode/system-options.py7
-rw-r--r--src/systemd/vyos-beep.service11
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