Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Jamie.Rees authored and Jamie.Rees committed Mar 10, 2017
1 parent 706fc94 commit f7f66d4
Show file tree
Hide file tree
Showing 22 changed files with 789 additions and 41 deletions.
53 changes: 53 additions & 0 deletions Ombi.Common/ContainerBuilder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#region Copyright
// /************************************************************************
// Copyright (c) 2017 Jamie Rees
// File: ContainerBuilder.cs
// Created By: Jamie Rees
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// ************************************************************************/
#endregion

using System;
using System.Collections.Generic;
using System.Reflection;
using Ombi.Common.EnvironmentInfo;

namespace Ombi.Common
{
public class ContainerBuilder
{

private readonly List<Type> _loadedTypes;
public ContainerBuilder()
{
_loadedTypes = new List<Type>();

var assemblies = new List<string>();
assemblies.Add(OsInfo.IsWindows ? "Ombi.Windows" : "Ombi.Mono");
assemblies.Add("Ombi.Common");

foreach (var assembly in assemblies)
{
_loadedTypes.AddRange(Assembly.Load(assembly).GetTypes());
}
}
}
}
88 changes: 88 additions & 0 deletions Ombi.Common/Disk/DiskTransferService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
//#region Copyright
//// /************************************************************************
//// Copyright (c) 2017 Jamie Rees
//// File: DiskTransferService.cs
//// Created By: Jamie Rees
////
//// Permission is hereby granted, free of charge, to any person obtaining
//// a copy of this software and associated documentation files (the
//// "Software"), to deal in the Software without restriction, including
//// without limitation the rights to use, copy, modify, merge, publish,
//// distribute, sublicense, and/or sell copies of the Software, and to
//// permit persons to whom the Software is furnished to do so, subject to
//// the following conditions:
////
//// The above copyright notice and this permission notice shall be
//// included in all copies or substantial portions of the Software.
////
//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
//// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
//// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
//// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
//// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//// ************************************************************************/
//#endregion
//namespace Ombi.Common.Disk
//{
// public class DiskTransferService
// {
// private readonly IDiskProvider _diskProvider;
// public int MirrorFolder(string sourcePath, string targetPath)
// {
// var filesCopied = 0;

// _logger.Debug("Mirror [{0}] > [{1}]", sourcePath, targetPath);

// if (!_diskProvider.FolderExists(targetPath))
// {
// _diskProvider.CreateFolder(targetPath);
// }

// var sourceFolders = _diskProvider.GetDirectoryInfos(sourcePath);
// var targetFolders = _diskProvider.GetDirectoryInfos(targetPath);

// foreach (var subDir in targetFolders.Where(v => !sourceFolders.Any(d => d.Name == v.Name)))
// {
// if (ShouldIgnore(subDir)) continue;

// _diskProvider.DeleteFolder(subDir.FullName, true);
// }

// foreach (var subDir in sourceFolders)
// {
// if (ShouldIgnore(subDir)) continue;

// filesCopied += MirrorFolder(subDir.FullName, Path.Combine(targetPath, subDir.Name));
// }

// var sourceFiles = _diskProvider.GetFileInfos(sourcePath);
// var targetFiles = _diskProvider.GetFileInfos(targetPath);

// foreach (var targetFile in targetFiles.Where(v => !sourceFiles.Any(d => d.Name == v.Name)))
// {
// if (ShouldIgnore(targetFile)) continue;

// _diskProvider.DeleteFile(targetFile.FullName);
// }

// foreach (var sourceFile in sourceFiles)
// {
// if (ShouldIgnore(sourceFile)) continue;

// var targetFile = Path.Combine(targetPath, sourceFile.Name);

// if (CompareFiles(sourceFile.FullName, targetFile))
// {
// continue;
// }

// TransferFile(sourceFile.FullName, targetFile, TransferMode.Copy, true, true);
// filesCopied++;
// }

// return filesCopied;
// }
// }
//}
2 changes: 2 additions & 0 deletions Ombi.Common/Ombi.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ContainerBuilder.cs" />
<Compile Include="Disk\DiskTransferService.cs" />
<Compile Include="EnvironmentInfo\OsInfo.cs" />
<Compile Include="EnvironmentInfo\PlatformInfo.cs" />
<Compile Include="Processes\ProcessInfo.cs" />
Expand Down
12 changes: 12 additions & 0 deletions Ombi.Mono/Class1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ombi.Mono
{
public class Class1
{
}
}
53 changes: 53 additions & 0 deletions Ombi.Mono/Ombi.Mono.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>96c89180-1fb5-48b7-9d35-6eb5f11c9d95</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Ombi.Mono</RootNamespace>
<AssemblyName>Ombi.Mono</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System"/>

<Reference Include="System.Core"/>
<Reference Include="System.Xml.Linq"/>
<Reference Include="System.Data.DataSetExtensions"/>


<Reference Include="Microsoft.CSharp"/>

<Reference Include="System.Data"/>

<Reference Include="System.Net.Http"/>

<Reference Include="System.Xml"/>
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
36 changes: 36 additions & 0 deletions Ombi.Mono/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Ombi.Mono")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Ombi.Mono")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("96c89180-1fb5-48b7-9d35-6eb5f11c9d95")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
7 changes: 4 additions & 3 deletions Ombi.UI/Modules/Admin/SystemStatusModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
using Nancy;
using Nancy.ModelBinding;
using Nancy.Responses.Negotiation;
using Ombi.Common.Processes;
using Ombi.Core;
using Ombi.Core.SettingModels;
using Ombi.Core.StatusChecker;
Expand Down Expand Up @@ -123,7 +124,7 @@ private Response AutoUpdate()
var url = Request.Form["url"];
var args = (string)Request.Form["args"].ToString();
var lowered = args.ToLower();
var appPath = Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(SystemStatusModule)).Location ?? string.Empty) ?? string.Empty, "Ombi.Updater.exe");
var appPath = Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(SystemStatusModule)).Location ?? string.Empty) ?? string.Empty, Path.Combine("UpdateService", "Ombi.Updater.exe"));

if (!string.IsNullOrEmpty(lowered))
{
Expand All @@ -133,15 +134,15 @@ private Response AutoUpdate()
}
}

var startArgs = string.IsNullOrEmpty(lowered) ? appPath : $"{lowered} Ombi.Updater.exe";
var startArgs = string.IsNullOrEmpty(lowered) || lowered == "Nancy.DynamicDictionaryValue".ToLower() ? appPath : $"{lowered} Ombi.Updater.exe";

var startInfo = Type.GetType("Mono.Runtime") != null
? new ProcessStartInfo(startArgs) { Arguments = $"{url} {lowered}", }
: new ProcessStartInfo(startArgs) { Arguments = $"{url} {lowered}" };

Process.Start(startInfo);

Environment.Exit(0);
//Environment.Exit(0);
return Nancy.Response.NoBody;
}

Expand Down
4 changes: 4 additions & 0 deletions Ombi.UI/Ombi.UI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -941,6 +941,10 @@
<Project>{8CB8D235-2674-442D-9C6A-35FCAEEB160D}</Project>
<Name>Ombi.Api</Name>
</ProjectReference>
<ProjectReference Include="..\Ombi.Common\Ombi.Common.csproj">
<Project>{BFD45569-90CF-47CA-B575-C7B0FF97F67B}</Project>
<Name>Ombi.Common</Name>
</ProjectReference>
<ProjectReference Include="..\Ombi.Core.Migration\Ombi.Core.Migration.csproj">
<Project>{8406EE57-D533-47C0-9302-C6B5F8C31E55}</Project>
<Name>Ombi.Core.Migration</Name>
Expand Down
3 changes: 2 additions & 1 deletion Ombi.UI/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
using CommandLine;
using Microsoft.Owin.Hosting;
Expand All @@ -41,6 +42,7 @@
using Ombi.Helpers;
using Ombi.Store;
using Ombi.Store.Repository;
using Ombi.UI.Modules.Admin;
using Ombi.UI.Start;

namespace Ombi.UI
Expand All @@ -50,7 +52,6 @@ class Program
private static Logger Log = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{

var result = Parser.Default.ParseArguments<StartupOptions>(args);
var baseUrl = result.MapResult(
o => o.BaseUrl,
Expand Down
4 changes: 2 additions & 2 deletions Ombi.UI/Views/SystemStatus/Status.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@
{
<label class="control-label"><a href="@Model.Status.UpdateUri" target="_blank"><i class="fa fa-check"></i></a></label>
<br />
@*<input id="args" class="form-control form-control-custom " placeholder="optional launch arguments e.g. /etc/mono /opt/PlexRequests.exe">*@
<input id="args" class="form-control form-control-custom " placeholder="optional launch arguments e.g. /etc/mono /opt/PlexRequests.exe">
<br/>
@*<button id="autoUpdate" class="btn btn-success-outline">Automatic Update (beta) <i class="fa fa-download"></i></button>*@
<button id="autoUpdate" class="btn btn-success-outline">Automatic Update (beta) <i class="fa fa-download"></i></button>
}
else
{
Expand Down
3 changes: 1 addition & 2 deletions Ombi.Updater/DetectApplicationType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ public AppType GetAppType()
return AppType.Normal;
}

if (_serviceProvider.ServiceExist(ServiceProvider.OmbiServiceName)
)
if (_serviceProvider.ServiceExist(ServiceProvider.OmbiServiceName))
{
return AppType.Service;
}
Expand Down
Loading

0 comments on commit f7f66d4

Please sign in to comment.