func newShim(pType ShimType) (shim, error) {
	switch pType {
	case NoopShimType:
		return &noopShim{}, nil
	case CCShimType:
		return &ccShim{}, nil
	default:
		return &noopShim{}, nil
	}
}
newShim returns a shim from a shim type.
package virtcontainers
import (
	"fmt"
	"os"
	"syscall"
	"time"
	"github.com/mitchellh/mapstructure"
	"github.com/sirupsen/logrus"
)
type ShimType string
const (
	CCShimType ShimType = "ccShim"
	NoopShimType ShimType = "noopShim"
)
var waitForShimTimeout = 5.0
type ShimParams struct {
	Container string
	Token     string
	URL       string
	Console   string
	Detach    bool
}
func (pType *ShimType) Set(value string) error {
	switch value {
	case "noopShim":
		*pType = NoopShimType
		return nil
	case "ccShim":
		*pType = CCShimType
		return nil
	default:
		return fmt.Errorf("Unknown shim type %s", value)
	}
}
func (pType *ShimType) String() string {
	switch *pType {
	case NoopShimType:
		return string(NoopShimType)
	case CCShimType:
		return string(CCShimType)
	default:
		return ""
	}
}