diff --git a/interface-definitions/beep-on-boot.xml b/interface-definitions/beep-on-boot.xml new file mode 100644 index 000000000..b8f44f30f --- /dev/null +++ b/interface-definitions/beep-on-boot.xml @@ -0,0 +1,26 @@ + + + + + + + + + + plays sound via system speaker when you can login + + enable + plays a sound via system speaker when logins are possible + + + disable + disable playing a sound when logins are possible + + + (enable|disable) + + + + + + diff --git a/src/conf_mode/beep_if_fully_booted.py b/src/conf_mode/beep_if_fully_booted.py new file mode 100755 index 000000000..e4003acd0 --- /dev/null +++ b/src/conf_mode/beep_if_fully_booted.py @@ -0,0 +1,50 @@ +#!/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 . +# +# + +import sys +import subprocess + +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 1 + else: + conf.set_level('system options beep-if-fully-booted') + if conf.exists('enable'): + return 0 + elif conf.exists('disable'): + return 1 + +def apply(status): + if status == 1: + rc = subprocess.call(['/bin/systemctl -q disable beep'], shell=True) + return rc + elif status == 0: + rc = subprocess.call(['/bin/systemctl -q enable beep'], shell=True) + return rc + +if __name__ == '__main__': + try: + c = get_config() + apply(c) + except ConfigError as e: + print(e) + sys.exit(1)