Rewrite on-the-fly renamed commands

This commit is contained in:
Ivan Kravets
2016-10-03 17:26:24 +03:00
parent 3600ef61a7
commit e51680be63
2 changed files with 16 additions and 19 deletions

View File

@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import sys
from os import getenv, listdir from os import getenv, listdir
from os.path import join from os.path import join
from platform import system from platform import system
from sys import exit as sys_exit
from traceback import format_exc from traceback import format_exc
import click import click
@ -43,22 +43,9 @@ class PlatformioCLI(click.MultiCommand): # pylint: disable=R0904
mod = __import__("platformio.commands." + name, None, None, mod = __import__("platformio.commands." + name, None, None,
["cli"]) ["cli"])
except ImportError: except ImportError:
try: raise click.UsageError('No such command "%s"' % name, ctx)
return self._handle_obsolate_command(name)
except AttributeError:
raise click.UsageError('No such command "%s"' % name, ctx)
return mod.cli return mod.cli
@staticmethod
def _handle_obsolate_command(name):
if name == "platforms":
from platformio.commands import platform
return platform.cli
elif name == "serialports":
from platformio.commands import device
return device.cli
raise AttributeError()
@click.command( @click.command(
cls=PlatformioCLI, cls=PlatformioCLI,
@ -103,6 +90,13 @@ def main():
except: # pylint: disable=bare-except except: # pylint: disable=bare-except
pass pass
# renamed commands
if len(sys.argv) > 1:
if sys.argv[1] == "platforms":
sys.argv[1] = "platform"
if sys.argv[1] == "serialports":
sys.argv[1] = "device"
cli(None, None, None) cli(None, None, None)
except Exception as e: # pylint: disable=W0703 except Exception as e: # pylint: disable=W0703
if not isinstance(e, exception.ReturnErrorCode): if not isinstance(e, exception.ReturnErrorCode):
@ -134,4 +128,4 @@ An unexpected error occurred. Further steps:
if __name__ == "__main__": if __name__ == "__main__":
sys_exit(main()) sys.exit(main())

View File

@ -110,10 +110,13 @@ class MeasurementProtocol(TelemetryBase):
args = [str(s).lower() for s in ctx_args if not str(s).startswith("-")] args = [str(s).lower() for s in ctx_args if not str(s).startswith("-")]
if not args: if not args:
return return
if args[0] in ("lib", "platform", "serialports", "settings"): cmd_path = args[:1]
if args[0] in ("lib", "platform", "device", "settings",
"remote"):
cmd_path = args[:2] cmd_path = args[:2]
else: if args[0] == "remote":
cmd_path = args[:1] if len(args) > 2 and args[1] in ("agent", "device"):
cmd_path = args[:3]
self['screen_name'] = " ".join([p.title() for p in cmd_path]) self['screen_name'] = " ".join([p.title() for p in cmd_path])
def send(self, hittype): def send(self, hittype):