/***********************************************************************
*
* Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
***********************************************************************/
//
// copyright 2003 Don Kackman - mailto:dkackman_2000@yahoo.com
//
// no warranty expressed or implied
// use however you'd like
//
using System;
using System.IO;
using System.Collections;
namespace VersionVDProj
{
///
/// Class that updates the version info of merge module projects
///
public class MSMProjectVersioner : VDProjectVersioner
{
private readonly static Guid MSM_PROJECT_TYPE = new Guid( "{DD7A5B58-C2F9-40FF-B2EF-0773356FB978}" );
private string signature;
///
/// createas a new instance of the class
///
/// the project file
public MSMProjectVersioner( FileInfo file ) : base( file, MSM_PROJECT_TYPE )
{
}
protected override void SetOptions( Hashtable options )
{
// get the signature - generate if not specified
if ( options.Contains( "signature" ) )
signature = options[signature].ToString();
else
signature = "MergeModule." + Guid.NewGuid().ToString().ToUpper().Replace( "-", "" );
}
protected override string TranslateLine( string line )
{
// look for the properties we are interested in changing
// if we find them, replace the old value with the new and return the new line string
// otherwise just return the line string
if ( line.IndexOf( "\"Version\"" ) != -1 )
line = ReplaceValue( line, "Version", version.FourPartVersion );
// module signature cannot have dashes
else if ( line.IndexOf( "\"ModuleSignature\"" ) != -1 )
line = ReplaceValue( line, "ModuleSignature", signature );
return line;
}
}
}