From 741d246581c4cf47a064eeea1f419d7d20ccf1c3 Mon Sep 17 00:00:00 2001 From: Redth Date: Fri, 30 Oct 2015 15:06:38 -0400 Subject: [PATCH] Add .cake extension for C# This adds the .cake file extension to the C# language. Here is a search in the wild: https://github.com/search?q=extension%3Acake+NOT+coffee&type=Code Cake (C# Make) is a cross platform build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages. You can find out out more about cake here: http://cakebuild.net/ --- lib/linguist/languages.yml | 1 + samples/C#/build.cake | 86 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 samples/C#/build.cake diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 0558ecdc..bbf9f0c8 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -392,6 +392,7 @@ C#: aliases: - csharp extensions: + - .cake - .cs - .cshtml - .csx diff --git a/samples/C#/build.cake b/samples/C#/build.cake new file mode 100644 index 00000000..d8075251 --- /dev/null +++ b/samples/C#/build.cake @@ -0,0 +1,86 @@ +/////////////////////////////////////////////////////////////////////////////// +// ARGUMENTS +/////////////////////////////////////////////////////////////////////////////// + +var target = Argument("target", "Default"); +var configuration = Argument("configuration", "Release"); + +/////////////////////////////////////////////////////////////////////////////// +// GLOBAL VARIABLES +/////////////////////////////////////////////////////////////////////////////// + +var solutions = GetFiles("./**/*.sln"); +var solutionPaths = solutions.Select(solution => solution.GetDirectory()); + +/////////////////////////////////////////////////////////////////////////////// +// SETUP / TEARDOWN +/////////////////////////////////////////////////////////////////////////////// + +Setup(() => +{ + // Executed BEFORE the first task. + Information("Running tasks..."); +}); + +Teardown(() => +{ + // Executed AFTER the last task. + Information("Finished running tasks."); +}); + +/////////////////////////////////////////////////////////////////////////////// +// TASK DEFINITIONS +/////////////////////////////////////////////////////////////////////////////// + +Task("Clean") + .Does(() => +{ + // Clean solution directories. + foreach(var path in solutionPaths) + { + Information("Cleaning {0}", path); + CleanDirectories(path + "/**/bin/" + configuration); + CleanDirectories(path + "/**/obj/" + configuration); + } +}); + +Task("Restore") + .Does(() => +{ + // Restore all NuGet packages. + foreach(var solution in solutions) + { + Information("Restoring {0}...", solution); + NuGetRestore(solution); + } +}); + +Task("Build") + .IsDependentOn("Clean") + .IsDependentOn("Restore") + .Does(() => +{ + // Build all solutions. + foreach(var solution in solutions) + { + Information("Building {0}", solution); + MSBuild(solution, settings => + settings.SetPlatformTarget(PlatformTarget.MSIL) + .WithProperty("TreatWarningsAsErrors","true") + .WithTarget("Build") + .SetConfiguration(configuration)); + } +}); + +/////////////////////////////////////////////////////////////////////////////// +// TARGETS +/////////////////////////////////////////////////////////////////////////////// + +Task("Default") + .IsDependentOn("Build"); + +/////////////////////////////////////////////////////////////////////////////// +// EXECUTION +/////////////////////////////////////////////////////////////////////////////// + +RunTarget(target); \ No newline at end of file