mirror of
https://github.com/flobz/psa_car_controller.git
synced 2026-08-26 10:17:18 +00:00
check if port is available before anything else
This commit is contained in:
@@ -14,6 +14,7 @@ from MyLogger import my_logger
|
||||
import argparse
|
||||
from MyLogger import logger
|
||||
from MyPSACC import MyPSACC
|
||||
from utils import is_port_in_use
|
||||
from web.app import start_app, save_config
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
@@ -21,19 +22,21 @@ parser = argparse.ArgumentParser()
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-f", "--config", help="config file, default file: config.json", type=argparse.FileType('r'), default="config.json")
|
||||
parser.add_argument("-f", "--config", help="config file, default file: config.json", type=argparse.FileType('r'),
|
||||
default="config.json")
|
||||
parser.add_argument("-c", "--charge-control", help="enable charge control, default charge_config.json",
|
||||
const="charge_config.json", nargs='?', metavar='charge config file')
|
||||
parser.add_argument("-d", "--debug", help="enable debug", const=10, default=20, nargs='?', metavar='Debug level number')
|
||||
parser.add_argument("-d", "--debug", help="enable debug", const=10, default=20, nargs='?',
|
||||
metavar='Debug level number')
|
||||
parser.add_argument("-l", "--listen", help="change server listen address", default="127.0.0.1", metavar="IP")
|
||||
parser.add_argument("-p", "--port", help="change server listen port", default="5000")
|
||||
parser.add_argument("-r", "--record", help="save vehicle data to db", action='store_true')
|
||||
parser.add_argument("-R", "--refresh", help="refresh vehicles status every x min",type=int)
|
||||
parser.add_argument("-R", "--refresh", help="refresh vehicles status every x min", type=int)
|
||||
parser.add_argument("-m", "--mail", default=environ.get('USER_EMAIL', None), help="set the email address")
|
||||
parser.add_argument("-P", "--password", default=environ.get('USER_PASSWORD', None), help="set the password")
|
||||
parser.add_argument("--remote-disable", help="disable remote control", action='store_true')
|
||||
parser.add_argument("--offline", help="offline limited mode", action='store_true')
|
||||
parser.add_argument("-b", "--base-path", help="base path for web app",default="/")
|
||||
parser.add_argument("-b", "--base-path", help="base path for web app", default="/")
|
||||
parser.parse_args()
|
||||
return parser
|
||||
|
||||
@@ -44,10 +47,13 @@ if __name__ == "__main__":
|
||||
parser = parse_args()
|
||||
args = parser.parse_args()
|
||||
try:
|
||||
args.debug=int(args.debug)
|
||||
args.debug = int(args.debug)
|
||||
except ValueError:
|
||||
pass
|
||||
my_logger(handler_level=args.debug)
|
||||
if is_port_in_use(args.listen, int(args.port)):
|
||||
logger.error(" Address already in use")
|
||||
exit(1)
|
||||
logger.info("server start")
|
||||
if args.config:
|
||||
config_name = args.config.name
|
||||
|
||||
@@ -3,6 +3,7 @@ from functools import wraps
|
||||
from threading import Semaphore, Timer
|
||||
|
||||
import requests
|
||||
import socket
|
||||
|
||||
from MyLogger import logger
|
||||
|
||||
@@ -42,3 +43,8 @@ def rate_limit(limit, every):
|
||||
return wrapper
|
||||
|
||||
return limit_decorator
|
||||
|
||||
|
||||
def is_port_in_use(ip, port):
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
return s.connect_ex((ip, port)) == 0
|
||||
|
||||
Reference in New Issue
Block a user