#!/usr/bin/env python3 # # numeric value validator # # 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 # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # 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 re import os import sys import shlex import vyos.util if len(sys.argv) < 2: print("Please specify script file to check") sys.exit(1) #if the "script" is a script+ stowaway arugments, this removes the aguements script = shlex.split(sys.argv[1])[0] if not os.path.exists(script): print("File {0} does not exist".format(script)) sys.exit(1) if not (os.path.isfile(script) and os.access(script, os.X_OK)): print("File {0} is not an executable file".format(script)) sys.exit(1) # File outside the config dir is just a warning res, warning = vyos.util.file_is_persistent(script) if not res: print(warning)