################################################################################
# Copyright (c) 2006, 2011 MontaVista Software, Inc. and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Eclipse Public License 2.0 
# which accompanies this distribution, and is available at 
# https://www.eclipse.org/legal/epl-2.0/ 
# 
# Contributors: 
# Yufen Kuo (MontaVista) - initial API and implementation
# Martin Oberhuber (Wind River) - [refactor] "shell" instead of "ssh" everywhere 
# Xuan Chen   (IBM) - added NLS_MESSAGEFORMAT comments
################################################################################

# NLS_MESSAGEFORMAT_VAR
# NLS_ENCODING=UTF-8

pluginName = RSE Linux Shell Processes
providerName = Eclipse TM Project

ShellProcessSubsystemName=Shell Processes
ShellProcessSubsystemDescription=This configuration allows you to work with processes on remote linux systems using any contributed Shell subsystem.
