46 строки
870 B
C#
46 строки
870 B
C#
|
using System;
|
||
|
using System.Text;
|
||
|
|
||
|
using Microsoft.Build.Utilities;
|
||
|
using Microsoft.Build.Framework;
|
||
|
|
||
|
namespace Xamarin.MacDev.Tasks
|
||
|
{
|
||
|
public abstract class GenerateBundleNameTaskBase : Task
|
||
|
{
|
||
|
public string SessionId { get; set; }
|
||
|
|
||
|
[Required]
|
||
|
public string ProjectName { get; set; }
|
||
|
|
||
|
[Output]
|
||
|
public string BundleName { get; set; }
|
||
|
|
||
|
static string SanitizeName (string name)
|
||
|
{
|
||
|
var sb = new StringBuilder (name.Length);
|
||
|
|
||
|
foreach (var c in name) {
|
||
|
if (char.IsLetterOrDigit (c) || c == '_')
|
||
|
sb.Append (c);
|
||
|
}
|
||
|
|
||
|
return sb.ToString ();
|
||
|
}
|
||
|
|
||
|
public override bool Execute ()
|
||
|
{
|
||
|
if (string.IsNullOrEmpty (ProjectName)) {
|
||
|
Log.LogError (" AssemblyPath cannot be null or empty");
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
BundleName = SanitizeName (ProjectName);
|
||
|
|
||
|
Log.LogMessage ("Generated bundle name: {0}", BundleName);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|