aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Uninstaller/Program.cs
blob: 8ea1a950aa7b6a0abb3679f4bd601d589e7fa288 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace MediaBrowser.Uninstaller
{
    class Program
    {
        static void Main(string[] args)
        {
            var product = args.Length > 1 ? args[1] : "server";
            //copy the real program to a temp location so we can delete everything here (including us)
            var tempExe = Path.Combine(Path.GetTempPath(), "MediaBrowser.Uninstaller.Execute.exe");
            var tempConfig = Path.Combine(Path.GetTempPath(), "MediaBrowser.Uninstaller.Execute.exe.config");
            //using (var file = File.Create(tempExe, 4096, FileOptions.DeleteOnClose))
            {
                //copy the real uninstaller to temp location
                var sourceDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? "";
                File.WriteAllBytes(tempExe, File.ReadAllBytes(Path.Combine(sourceDir, "MediaBrowser.Uninstaller.Execute.exe")));
                File.Copy(Path.Combine(sourceDir, "MediaBrowser.Uninstaller.Execute.exe.config"), tempConfig, true);
                //kick off the copy
                Process.Start(tempExe, product);
                //and shut down
            }
        }
    }
}