view mercurial-common/src/python/load-commands-command.py @ 828:8d02c7b1f812

use HG extension to pass infinite commandline arguments list
author eugene.petrenko@jetbrains.com
date Fri, 30 May 2014 17:29:51 +0200
parents
children ef19cc8d5bc1
line wrap: on
line source
#!/usr/bin/env python
##
##    Copyright 2000-2014 JetBrains
##
##     Licensed under the Apache License, Version 2.0 (the "License");
##       you may not use this file except in compliance with the License.
##      You may obtain a copy of the License at
##
##          http://www.apache.org/licenses/LICENSE-2.0
##
##       Unless required by applicable law or agreed to in writing, software
##       distributed under the License is distributed on an "AS IS" BASIS,
##       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##       See the License for the specific language governing permissions and
##       limitations under the License.
##
##
##  http://www.gnu.org/licenses/gpl-faq.html#GPLModuleLicense
##  http://www.gnu.org/licenses/license-list.html#apache2
##  http://en.wikipedia.org/wiki/Apache_License#GPL_compatibility
##
##
"""
load-commands-command
"""

import codecs
from mercurial import dispatch

def loadArguments(ui, params_file):
  file_commands = []
  ui.write("Parameters from the file (one by line):\n")
  with codecs.open(params_file, "r", "utf-8") as f:
    for _line in f:
      line = _line.strip()
      if len(line) <= 0:
        continue

      ui.write("  " + line + "\n")
      file_commands.append(line)
  return file_commands


def load_commands_command(ui, repo, params_file, *pats, **opts):
  ui.write("Staring command with arguments from " + params_file + "\n")
  command_arguments = loadArguments(ui, params_file)

  ui.write("\nRunning the command...\n\n")
  return dispatch.dispatch(dispatch.request(command_arguments))

#so here goes command registration and options
cmdtable = {
    "CMD": (load_commands_command, [ ], "params_file [foo]...")
}

testedwith = '2.2.2'
buglink = "@jonnyzzz"