aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-04-12 12:22:44 -0400
committerEric Reed <ebr@mediabrowser3.com>2013-04-12 12:22:44 -0400
commite6b03ea45094cd7776a5fe62e85fed38a9a20241 (patch)
treea163081c30120832d35070824403579db32e5b8c
parentb789550a5639a65e5b9cf0908ab8a577bd891589 (diff)
Beginnings of support for MBClassic in our installer
-rw-r--r--MediaBrowser.Installer/MainWindow.xaml.cs36
1 files changed, 29 insertions, 7 deletions
diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs
index bb2612523..344a9b769 100644
--- a/MediaBrowser.Installer/MainWindow.xaml.cs
+++ b/MediaBrowser.Installer/MainWindow.xaml.cs
@@ -26,10 +26,12 @@ namespace MediaBrowser.Installer
protected string PackageName = "MBServer";
protected string RootSuffix = "-Server";
protected string TargetExe = "MediaBrowser.ServerApplication.exe";
+ protected string TargetArgs = "";
protected string FriendlyName = "Media Browser Server";
protected string Archive = null;
protected bool InstallPismo = true;
protected string RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser-Server");
+ protected string EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser-Server");
protected bool IsUpdate = false;
@@ -133,6 +135,18 @@ namespace MediaBrowser.Installer
RootSuffix = "-Theater";
TargetExe = "MediaBrowser.UI.exe";
FriendlyName = "Media Browser Theater";
+ RootPath = EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
+ EndInstallPath = Path.Combine(RootPath, "system");
+ break;
+
+ case "mbc":
+ PackageName = "MBClassic";
+ RootSuffix = "-WMC";
+ TargetExe = "ehshell.exe";
+ TargetArgs = @"/nostartupanimation /entrypoint:{CE32C570-4BEC-4aeb-AD1D-CF47B91DE0B2}\{FC9ABCCC-36CB-47ac-8BAB-03E8EF5F6F22}";
+ FriendlyName = "Media Browser Classic";
+ RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
+ EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "ehome");
break;
default:
@@ -140,10 +154,11 @@ namespace MediaBrowser.Installer
RootSuffix = "-Server";
TargetExe = "MediaBrowser.ServerApplication.exe";
FriendlyName = "Media Browser Server";
+ RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
+ EndInstallPath = Path.Combine(RootPath, "system");
break;
}
- RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
}
@@ -274,8 +289,7 @@ namespace MediaBrowser.Installer
}
catch (Exception e)
{
- SystemClose("Error Installing Pismo - "+e.GetType().FullName+"\n\n"+e.Message);
- return;
+ SystemClose("Error Installing ISO support - "+e.GetType().FullName+"\n\n"+e.Message);
}
}
@@ -286,11 +300,11 @@ namespace MediaBrowser.Installer
lblStatus.Text = string.Format("Starting {0}...", FriendlyName);
try
{
- Process.Start(fullPath);
+ Process.Start(Path.Combine(EndInstallPath, TargetExe), TargetArgs);
}
catch (Exception e)
{
- SystemClose("Error Executing - "+fullPath+ " "+e.GetType().FullName+"\n\n"+e.Message);
+ SystemClose("Error Executing - "+Path.Combine(EndInstallPath, TargetExe) + " " + TargetArgs + "\n\n" +e.GetType().FullName+"\n\n"+e.Message);
return;
}
@@ -432,8 +446,7 @@ namespace MediaBrowser.Installer
else
{
//Rollback
- if (Directory.Exists(systemDir)) Directory.Delete(systemDir);
- Directory.Move(backupDir, systemDir);
+ RollBack(systemDir, backupDir);
File.Delete(archive); // so we don't try again if its an update
throw;
}
@@ -441,6 +454,15 @@ namespace MediaBrowser.Installer
}
}
+ protected void RollBack(string systemDir, string backupDir)
+ {
+ if (Directory.Exists(backupDir))
+ {
+ if (Directory.Exists(systemDir)) Directory.Delete(systemDir);
+ Directory.Move(backupDir, systemDir);
+ }
+ }
+
/// <summary>
/// Create a shortcut in the current user's start menu
/// Only do current user to avoid need for admin elevation