aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-10-11 15:54:43 +0100
committerGravatar jesopo2019-10-11 15:54:43 +0100
commit6a4cdabc9353f5788eea9997240b2a66eb9cfed4 (patch)
tree27f207750878ddc1a9d370e68319a1c2751eaba0
parentRevert "no longer treat ctrl+c as "shutdown" - bitbotctl will take this job" (diff)
signature
add "rehash" bitbotctl command
-rwxr-xr-xbitbotctl12
-rw-r--r--src/Control.py15
2 files changed, 15 insertions, 12 deletions
diff --git a/bitbotctl b/bitbotctl
index a7fbeea0..31881999 100755
--- a/bitbotctl
+++ b/bitbotctl
@@ -12,7 +12,7 @@ arg_parser.add_argument("--database", "-d",
arg_parser.add_argument("command")
-args = arg_parser.parse_args()
+args, unknown = arg_parser.parse_known_args()
def _die(s):
sys.stderr.write("%s\n" % s)
@@ -21,6 +21,8 @@ def _die(s):
if args.command == "log":
arg_parser.add_argument("--level", "-l", help="Log level",
default="INFO")
+elif args.command == "rehash":
+ pass
else:
_die("Unknown command '%s'" % args.command)
@@ -30,7 +32,13 @@ sock_location = "%s.sock" % args.database
if not os.path.exists(sock_location):
_die("Failed to connect to BitBot instance")
-import json, socket
+import json, socket, signal
+
+def _sigint(_1, _2):
+ print("")
+ sys.exit(0)
+signal.signal(signal.SIGINT, _sigint)
+
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect("%s.sock" % args.database)
diff --git a/src/Control.py b/src/Control.py
index 80bea331..b68bbddc 100644
--- a/src/Control.py
+++ b/src/Control.py
@@ -6,8 +6,8 @@ class ControlClient(object):
self._socket = sock
self._read_buffer = b""
self._write_buffer = b""
- self.version = None
- self.log_level = None
+ self.version = -1
+ self.log_level = None # type: typing.Optional[int]
def fileno(self) -> int:
return self._socket.fileno()
@@ -65,6 +65,7 @@ class Control(PollSource.PollSource):
if fileno == self._socket.fileno():
client, address = self._socket.accept()
self._clients[client.fileno()] = ControlClient(client)
+ self._bot.log.debug("New control socket connected")
elif fileno in self._clients:
client = self._clients[fileno]
lines = client.read_lines()
@@ -90,14 +91,8 @@ class Control(PollSource.PollSource):
client.version = int(data)
elif command == "log":
client.log_level = Logging.LEVELS[data.lower()]
-
- elif command == "command":
- result = self._bot._events.on("control.command").on(
- data["command"]).call_for_result(command=data["command"],
- args=data["args"])
- if not result == None:
- response_action = "result"
- response_data = result
+ elif command == "rehash":
+ self._bot.config.load()
self._send_action(client, response_action, response_data, id)