static int Main(string[] args) { VerificationLookup["dir_exists"] = CheckDirectoryExists; VerificationLookup["file_exists"] = CheckFileExists; VerificationLookup["dir_does_not_exist"] = CheckDirectoryDoesNotExist; VerificationLookup["file_does_not_exist"] = CheckFileDoesNotExist; VerificationLookup["file_contains"] = CheckFileContains; VerificationLookup["file_does_not_contain"] = CheckFileDoesNotContain; string[] passthroughArgs = new string[args.Length - 2]; for (int i = 0; i < passthroughArgs.Length; ++i) { passthroughArgs[i] = args[i + 2]; } string verificationsFile = args[0]; string outputPath = args[1]; string verificationsFileContents = File.ReadAllText(verificationsFile); JArray verifications = JArray.Parse(verificationsFileContents); ITemplateEngineHost host = CreateHost(); string profileDir = Environment.ExpandEnvironmentVariables("%USERPROFILE%"); if (string.IsNullOrWhiteSpace(profileDir)) { profileDir = Environment.ExpandEnvironmentVariables("$HOME"); } if (string.IsNullOrWhiteSpace(profileDir)) { Console.Error.WriteLine("Could not determine home directory"); return(0); } host.VirtualizeDirectory(Path.Combine(profileDir, ".templateengine")); host.VirtualizeDirectory(outputPath); int result = New3Command.Run(CommandName, host, FirstRun, passthroughArgs); bool verificationsPassed = false; try { verificationsPassed = RunVerifications(verifications, host.FileSystem, outputPath); } catch (Exception ex) { verificationsPassed = false; Console.Error.WriteLine(ex.ToString()); } return(result != 0 ? result : verificationsPassed ? 0 : 1); }
private static ITemplateEngineHost CreateHostWithVirtualizedHive(string hostIdentifier, string hostVersion) { ITemplateEngineHost host = CreateHost(hostIdentifier, hostVersion); string home = "%USERPROFILE%"; if (Path.DirectorySeparatorChar == '/') { home = "%HOME%"; } string profileDir = Environment.ExpandEnvironmentVariables(home); if (string.IsNullOrWhiteSpace(profileDir)) { // Could not determine home directory return(null); } string hivePath = Path.Combine(profileDir, ".templateengine", hostIdentifier); host.VirtualizeDirectory(hivePath); return(host); }
private static int Main(string[] args) { VerificationLookup["dir_exists"] = CheckDirectoryExists; VerificationLookup["file_exists"] = CheckFileExists; VerificationLookup["dir_does_not_exist"] = CheckDirectoryDoesNotExist; VerificationLookup["file_does_not_exist"] = CheckFileDoesNotExist; VerificationLookup["file_contains"] = CheckFileContains; VerificationLookup["file_does_not_contain"] = CheckFileDoesNotContain; int batteryCount = int.Parse(args[0], CultureInfo.InvariantCulture); string outputPath = args[batteryCount + 1]; List <string> passThroughArgs = new List <string>(); passThroughArgs.AddRange(args.Skip(2 + batteryCount)); passThroughArgs.Add("--debug:ephemeral-hive"); ITemplateEngineHost host = CreateHost(); host.VirtualizeDirectory(outputPath); var command = NewCommandFactory.Create(CommandName, _ => host, _ => new TelemetryLogger(null), new NewCommandCallbacks()); int result = ParserFactory.CreateParser(command).Parse(passThroughArgs.ToArray()).Invoke(); bool verificationsPassed = false; for (int i = 0; i < batteryCount; ++i) { string verificationsFile = args[i + 1]; string verificationsFileContents = File.ReadAllText(verificationsFile); JArray verifications = JArray.Parse(verificationsFileContents); try { verificationsPassed = RunVerifications(verifications, host.FileSystem, outputPath); } catch (Exception ex) { verificationsPassed = false; Console.Error.WriteLine(ex.ToString()); } } Console.Error.WriteLine(" "); Console.Error.WriteLine("Output Files:"); foreach (string fileName in host.FileSystem.EnumerateFiles(outputPath, "*", SearchOption.AllDirectories)) { Console.Error.WriteLine(fileName.Substring(outputPath.Length)); } return(result != 0 ? result : batteryCount == 0 ? 0 : verificationsPassed ? 0 : 1); }
internal static Bootstrapper GetBootstrapper(IEnumerable <string> additionalVirtualLocations = null, bool loadBuiltInTemplates = false) { ITemplateEngineHost host = CreateHost(loadBuiltInTemplates); if (additionalVirtualLocations != null) { foreach (string virtualLocation in additionalVirtualLocations) { host.VirtualizeDirectory(virtualLocation); } } return(new Bootstrapper(host, null, true)); }
internal static Bootstrapper GetBootstrapper(bool installAllTemplates = false, IEnumerable <string> additionalVirtualLocations = null) { ITemplateEngineHost host = CreateHost(); if (additionalVirtualLocations != null) { foreach (string virtualLocation in additionalVirtualLocations) { host.VirtualizeDirectory(virtualLocation); } } if (installAllTemplates) { return(new Bootstrapper(host, InstallAllTemplatesOnFirstRun, true)); } return(new Bootstrapper(host, null, true)); }
public void VirtualizeDirectory(string path) { _baseHost.VirtualizeDirectory(path); }
static int Main(string[] args) { VerificationLookup["dir_exists"] = CheckDirectoryExists; VerificationLookup["file_exists"] = CheckFileExists; VerificationLookup["dir_does_not_exist"] = CheckDirectoryDoesNotExist; VerificationLookup["file_does_not_exist"] = CheckFileDoesNotExist; VerificationLookup["file_contains"] = CheckFileContains; VerificationLookup["file_does_not_contain"] = CheckFileDoesNotContain; int batteryCount = int.Parse(args[0], CultureInfo.InvariantCulture); string[] passthroughArgs = new string[args.Length - 2 - batteryCount]; string outputPath = args[batteryCount + 1]; for(int i = 0; i < passthroughArgs.Length; ++i) { passthroughArgs[i] = args[i + 2 + batteryCount]; } string home = "%USERPROFILE%"; if (Path.DirectorySeparatorChar == '/') { home = "%HOME%"; } ITemplateEngineHost host = CreateHost(); string profileDir = Environment.ExpandEnvironmentVariables(home); if (string.IsNullOrWhiteSpace(profileDir)) { Console.Error.WriteLine("Could not determine home directory"); return 0; } string hivePath = Path.Combine(profileDir, ".tetestharness"); host.VirtualizeDirectory(hivePath); host.VirtualizeDirectory(outputPath); int result = New3Command.Run(CommandName, host, new TelemetryLogger(null), FirstRun, passthroughArgs, hivePath); bool verificationsPassed = false; for (int i = 0; i < batteryCount; ++i) { string verificationsFile = args[i + 1]; string verificationsFileContents = File.ReadAllText(verificationsFile); JArray verifications = JArray.Parse(verificationsFileContents); try { verificationsPassed = RunVerifications(verifications, host.FileSystem, outputPath); } catch (Exception ex) { verificationsPassed = false; Console.Error.WriteLine(ex.ToString()); } } Console.Error.WriteLine(" "); Console.Error.WriteLine("Output Files:"); foreach (string fileName in host.FileSystem.EnumerateFiles(outputPath, "*", SearchOption.AllDirectories)) { Console.Error.WriteLine(fileName.Substring(outputPath.Length)); } return result != 0 ? result : verificationsPassed ? 0 : 1; }