#!/usr/bin/env python
#  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
#
#  Use of this source code is governed by a BSD-style license
#  that can be found in the LICENSE file in the root of the source
#  tree. An additional intellectual property rights grant can be found
#  in the file PATENTS.  All contributing project authors may
#  be found in the AUTHORS file in the root of the source tree.


class MissingParameterException(Exception):
  pass


def FillInParameter(parameter, value, template):
  if parameter not in template:
    raise MissingParameterException('Did not find parameter %s in template.' %
                                    parameter)

  return template.replace(parameter, value)