Example #1
0
        /// <summary>
        /// Builds the package.
        /// </summary>
        /// <returns></returns>
        private static async ValueTask BuildPackageAsync()
        {
            //Clone repo
            Console.WriteLine(Strings.CloningTheRepo);
            await GitProcessAsync(await Git.GetCloneStringAsync(PackageVersion).ConfigureAwait(false)).ConfigureAwait(false);

            //Instal dependencies
            Console.WriteLine(Strings.InstallingNpmDependencies);
            await NpmProcessAsync(Npm.Install, OmniSharp.OmniSharpDirectoryPath).ConfigureAwait(false);

            //Comment string if packaging on windows
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                Console.WriteLine(Strings.CommentingThrowStatement);
                await
                CommentThrowStatementAsync(await OmniSharp.GetOfflinePackagingTasksPathAsync.ConfigureAwait(false),
                                           OmniSharp.StringToComment).ConfigureAwait(false);
            }

            //Compile package
            Console.WriteLine(Strings.CompilingThePackage);
            await NpmProcessAsync(Npm.Compile, OmniSharp.OmniSharpDirectoryPath).ConfigureAwait(false);

            //Create package
            Console.WriteLine(Strings.CreatingThePackage);
            await NpmProcessAsync(Npm.Gulp, OmniSharp.OmniSharpDirectoryPath).ConfigureAwait(false);

            //Move ready packages if necessary

            if (OutputDirectoryInfo == null)
            {
                return;
            }

            Console.WriteLine(Strings.MovingReadyPackages);

            //Windows
            File.Move(Path.Combine(OmniSharp.OmniSharpDirectoryPath,
                                   await OmniSharp.GetWindowsPackageNameAsync(PackageVersion).ConfigureAwait(false)),
                      Path.Combine(OutputDirectoryInfo.FullName,
                                   await OmniSharp.GetWindowsPackageNameAsync(PackageVersion).ConfigureAwait(false)));

            //Linux
            File.Move(Path.Combine(OmniSharp.OmniSharpDirectoryPath,
                                   await OmniSharp.GetLinuxPackageNameAsync(PackageVersion).ConfigureAwait(false)),
                      Path.Combine(OutputDirectoryInfo.FullName,
                                   await OmniSharp.GetLinuxPackageNameAsync(PackageVersion).ConfigureAwait(false)));

            //OSX
            File.Move(Path.Combine(OmniSharp.OmniSharpDirectoryPath, await OmniSharp.GetMacOsPackageNameAsync(PackageVersion).ConfigureAwait(false)),
                      Path.Combine(OutputDirectoryInfo.FullName, await OmniSharp.GetMacOsPackageNameAsync(PackageVersion).ConfigureAwait(false)));
        }