old_contents: from __future__ import print_function, unicode_literals
  from os import path
  
  import subprocess
  
  from mach.decorators import (
      CommandArgument,
      CommandProvider,
      Command,
  )
  
  from servo.command_base import CommandBase, cd
  
  
  @CommandProvider
  class MachCommands(CommandBase):
      @Command('cargo',
               description='Run Cargo',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help="Command-line arguments to be passed through to Cargo")
      def cargo(self, params):
          return subprocess.call(["cargo"] + params,
                                 env=self.build_env())
  
      @Command('update-cargo',
               description='Update Cargo dependencies',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help='Command-line arguments to be passed through to cargo update')
      def update_cargo(self, params=None):
          if not params:
              params = []
  
          cargo_paths = [path.join('components', 'servo'),
                         path.join('ports', 'cef'),
                         path.join('ports', 'gonk')]
  
          for cargo_path in cargo_paths:
              with cd(cargo_path):
                  print(cargo_path)
                  subprocess.call(["cargo", "update"] + params,
                                  env=self.build_env())
  
      @Command('rustc',
               description='Run the Rust compiler',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help="Command-line arguments to be passed through to rustc")
      def rustc(self, params):
          if params is None:
              params = []
          return subprocess.call(["rustc"] + params, env=self.build_env())
  
      @Command('rust-root',
               description='Print the path to the root of the Rust compiler',
               category='devenv')
      def rust_root(self):
          print(self.config["tools"]["rust-root"])
  
new_contents: from __future__ import print_function, unicode_literals
  from os import path
  
  import subprocess
  
  from mach.decorators import (
      CommandArgument,
      CommandProvider,
      Command,
  )
  
  from servo.command_base import CommandBase, cd
  
  
  @CommandProvider
  class MachCommands(CommandBase):
      @Command('cargo',
               description='Run Cargo',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help="Command-line arguments to be passed through to Cargo")
      def cargo(self, params):
          if not params:
              params = []
          return subprocess.call(["cargo"] + params,
                                 env=self.build_env())
  
      @Command('update-cargo',
               description='Update Cargo dependencies',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help='Command-line arguments to be passed through to cargo update')
      def update_cargo(self, params=None):
          if not params:
              params = []
  
          cargo_paths = [path.join('components', 'servo'),
                         path.join('ports', 'cef'),
                         path.join('ports', 'gonk')]
  
          for cargo_path in cargo_paths:
              with cd(cargo_path):
                  print(cargo_path)
                  subprocess.call(["cargo", "update"] + params,
                                  env=self.build_env())
  
      @Command('rustc',
               description='Run the Rust compiler',
               category='devenv')
      @CommandArgument(
          'params', default=None, nargs='...',
          help="Command-line arguments to be passed through to rustc")
      def rustc(self, params):
          if params is None:
              params = []
          return subprocess.call(["rustc"] + params, env=self.build_env())
  
      @Command('rust-root',
               description='Print the path to the root of the Rust compiler',
               category='devenv')
      def rust_root(self):
          print(self.config["tools"]["rust-root"])
  
subject: Check for no parameters when invoking cargo