using System;
using System.Configuration;
using System.IO;
using System.Reflection;
using System.ServiceProcess;
using System.Windows.Forms;

namespace Sleepy
{
	static class Program
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main()
		{
			if (Environment.UserInteractive)
			{
				var cFile = Path.GetDirectoryName(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath) + "\\config.ini";
				var config = new Config(cFile);

				Application.EnableVisualStyles();
				Application.SetCompatibleTextRenderingDefault(false);
				Application.Run(new Window(new ServiceManager(), config));
			}
			else
			{
				var cFile = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\config.ini";
				var config = new Config(cFile);

				ServiceBase[] ServicesToRun;
				ServicesToRun = new ServiceBase[] { new Service(config) };
				ServiceBase.Run(ServicesToRun);
			}
		}
	}
}