Преглед изворни кода

Port over old mk script + do dynamic imports

Kirk Trombley пре 4 година
родитељ
комит
8b4a53f5cf
2 измењених фајлова са 39 додато и 2 уклоњено
  1. 34 0
      mkcommand.sh
  2. 5 2
      src/commands/__init__.py

+ 34 - 0
mkcommand.sh

@@ -0,0 +1,34 @@
+#!/usr/bin/env sh
+
+if [ $# -lt 1 ]
+then
+    echo "usage: $0 command-name"
+    echo "  This script generates a file at src/commands/command-name.py, containing the base of a rollbot command."
+    echo "  The command-name must be a valid python identifier, and should only be composed of lowercase letters and underscores"
+    exit 1
+fi
+
+if ! [[ "$1" =~ ^[a-z][a-z_]*$ ]]
+then
+    echo "Command names should be composed entirely of lowercase letters and underscores"
+    exit 1
+fi
+
+COMMAND_FILE="./src/commands/$1.py"
+
+if [[ -f $COMMAND_FILE ]]
+then
+    echo "Command module with this name already exists - pick a new module name. You can always bind it to a different command word later!"
+    exit 1
+fi
+
+echo "Populating $COMMAND_FILE with basic command called $1"
+
+echo "from rollbot import as_command" >> $COMMAND_FILE
+echo "" >> $COMMAND_FILE
+echo "" >> $COMMAND_FILE
+echo "@as_command" >> $COMMAND_FILE
+echo "def $1():" >> $COMMAND_FILE
+echo "    return \"Hello, world!\"" >> $COMMAND_FILE
+
+echo "Done! Command is ready for you to edit at $COMMAND_FILE, you do not need to modify any configuration!"

+ 5 - 2
src/commands/__init__.py

@@ -1,7 +1,10 @@
-import commands.roll
+import pkgutil
 
 from rollbot import get_command_config
 
-__all__ = ["config"]
+for loader, module_name, is_pkg in  pkgutil.walk_packages(__path__):
+    _module = loader.find_module(module_name).load_module(module_name)
+    globals()[module_name] = _module
 
+__all__ = ["config"]
 config = get_command_config()