Esempio n. 1
0
		protected override void OnDestroyed ()
		{
			isDestroyed = true;
			MessageService.PopupDialog -= HandlePopupDialog;
			base.OnDestroyed ();
			if (bitmap != null) {
				bitmap.Dispose ();
				bitmap = null;
			}
			if (monitor != null) {
				monitor.Dispose ();
				monitor = null;
			}
		}
Esempio n. 2
0
		public static IProgressMonitor GetMonitor (bool ignoreLogMessages)
		{
			ConsoleProgressMonitor m = new ConsoleProgressMonitor ();
			m.IgnoreLogMessages = ignoreLogMessages;
			return m;
		}
		public int Run (string[] arguments)
		{
			if (arguments.Length == 0 || arguments [0] == "--help") {
				Console.WriteLine ("");
				Console.WriteLine ("Project Export Tool");
				Console.WriteLine ("Usage: mdtool project-export <source-project-file> [-d:dest-path] [-f:format-name]");
				Console.WriteLine ("");
				Console.WriteLine ("Options");
				Console.WriteLine ("  -d:<dest-path>      Directory where the project will be exported.");
				Console.WriteLine ("  -f:\"<format-name>\"  Format to which export the project or solution.");
				Console.WriteLine ("  -l                  Show a list of all allowed target formats.");
				Console.WriteLine ("");
				Console.WriteLine ("  The format name is optional. A list of allowed file formats will be");
				Console.WriteLine ("  shown if none is provided.");
				Console.WriteLine ("");
				return 0;
			}
			
			string projectFile = null;
			string destPath = null;
			string formatName = null;
			bool formatList = false;
			
			foreach (string s in arguments)
			{
				if (s.StartsWith ("-d:"))
					destPath = s.Substring (3);
				else if (s.StartsWith ("-f:"))
					formatName = s.Substring (3);
				else if (s == "-l")
					formatList = true;
				else if (projectFile != null) {
					Console.WriteLine ("Only one project can be converted at a time.");
					return 1;
				}
				else
					projectFile = s;
			}
			
			if (projectFile == null) {
				Console.WriteLine ("Project or solution file name not provided.");
				return 1;
			}
			
			projectFile = FileService.GetFullPath (projectFile);
			if (!File.Exists (projectFile)) {
				Console.WriteLine ("File {0} not found.", projectFile);
				return 1;
			}
			
			ConsoleProgressMonitor monitor = new ConsoleProgressMonitor ();
			monitor.IgnoreLogMessages = true;
			
			
			object item;
			if (Services.ProjectService.IsWorkspaceItemFile (projectFile))
				item = Services.ProjectService.ReadWorkspaceItem (monitor, projectFile);
			else
				item = Services.ProjectService.ReadSolutionItem (monitor, projectFile);
			
			FileFormat[] formats = Services.ProjectService.FileFormats.GetFileFormatsForObject (item);
			
			if (formats.Length == 0) {
				Console.WriteLine ("Can't convert file to any format: " + projectFile);
				return 1;
			}
			
			FileFormat format = null;
			
			if (formatName == null || formatList) {
				Console.WriteLine ();
				Console.WriteLine ("Target formats:");
				for (int n=0; n<formats.Length; n++)
					Console.WriteLine ("  {0}. {1}", n + 1, formats [n].Name);
				Console.WriteLine ();
				if (formatList)
					return 0;
				
				int op = 0;
				do {
					Console.Write ("Convert to format: ");
					string s = Console.ReadLine ();
					if (s.Length == 0)
						return 1;
					if (int.TryParse (s, out op)) {
						if (op > 0 && op <= formats.Length)
							break;
					}
				} while (true);
				
				format = formats [op - 1];
			}
			else {
				foreach (FileFormat f in formats) {
					if (f.Name == formatName)
						format = f;
				}
				if (format == null) {
					Console.WriteLine ("Unknown file format: " + formatName);
					return 1;
				}
			}
			
			if (destPath == null)
				destPath = Path.GetDirectoryName (projectFile);
			destPath = FileService.GetFullPath (destPath);
			
			string ofile = Services.ProjectService.Export (monitor, projectFile, destPath, format);
			if (ofile != null) {
				Console.WriteLine ("Saved file: " + ofile);
				return 0;
			}
			else {
				Console.WriteLine ("Project export failed.");
				return 1;
			}
		}
		public async Task<int> Run (string[] arguments)
		{
			Console.WriteLine (BrandingService.BrandApplicationName ("MonoDevelop Gettext Update Tool"));
			foreach (string s in arguments)
				ReadArgument (s);
			
			if (help) {
				Console.WriteLine ("gettext-update [options] [project-file]");
				Console.WriteLine ("--f --file:FILE   Project or solution file to build.");
				Console.WriteLine ("--p --project:PROJECT  Name of the project to build.");
				Console.WriteLine ();
				return 0;
			}
			
			if (file == null) {
				string[] files = Directory.GetFiles (".");
				foreach (string f in files) {
					if (Services.ProjectService.IsWorkspaceItemFile (f)) {
						file = f;
						break;
					}
				}
				if (file == null) {
					Console.WriteLine ("Solution file not found.");
					return 1;
				}
			} else if (!Services.ProjectService.IsWorkspaceItemFile (file)) {
				Console.WriteLine ("File '{0}' is not a project or solution.", file);
				return 1;
			}
			
			ConsoleProgressMonitor monitor = new ConsoleProgressMonitor ();
			monitor.IgnoreLogMessages = true;
			
			WorkspaceItem centry = await Services.ProjectService.ReadWorkspaceItem (monitor, file);
			monitor.IgnoreLogMessages = false;
			
			Solution solution = centry as Solution;
			if (solution == null) {
				Console.WriteLine ("File is not a solution: " + file);
				return 1;
			}
			
			if (project != null) {
				SolutionItem item = solution.FindProjectByName (project);
				
				if (item == null) {
					Console.WriteLine ("The project '" + project + "' could not be found in " + file);
					return 1;
				}
				TranslationProject tp = item as TranslationProject;
				if (tp == null) {
					Console.WriteLine ("The project '" + item.FileName + "' is not a translation project");
					return 1;
				}
				tp.UpdateTranslations (monitor);
			}
			else {
				foreach (TranslationProject p in solution.GetAllItems <TranslationProject>())
					p.UpdateTranslations (monitor);
			}
			
			return 0;
		}
Esempio n. 5
0
		public int Run (string[] arguments)
		{
			Console.WriteLine ("MonoDevelop Build Tool");
			foreach (string s in arguments)
				ReadArgument (s);
			
			if (help) {
				Console.WriteLine ("build [options] [build-file]");
				Console.WriteLine ("-p --project:PROJECT  Name of the project to build.");
				Console.WriteLine ("-t --target:TARGET    Name of the target: Build or Clean.");
				Console.WriteLine ("-c --configuration:CONFIGURATION  Name of the solution configuration to build.");
				Console.WriteLine ("-r --runtime:PREFIX  Prefix of the Mono runtime to build against.");
				Console.WriteLine ();
				Console.WriteLine ("Supported targets:");
				Console.WriteLine ("  {0}: build the project (the default target).", ProjectService.BuildTarget);
				Console.WriteLine ("  {0}: clean the project.", ProjectService.CleanTarget);
				Console.WriteLine ();
				return 0;
			}
			
			string solFile = null;
			string itemFile = null;
			
			if (file == null) {
				string[] files = Directory.GetFiles (".");
				foreach (string f in files) {
					if (Services.ProjectService.IsWorkspaceItemFile (f)) {
						solFile = f;
						break;
					} else if (itemFile == null && Services.ProjectService.IsSolutionItemFile (f))
						itemFile = f;
				}
				if (solFile == null && itemFile == null) {
					Console.WriteLine ("Project file not found.");
					return 1;
				}
			} else {
				if (Services.ProjectService.IsWorkspaceItemFile (file))
				    solFile = file;
				else if (Services.ProjectService.IsSolutionItemFile (file))
					itemFile = file;
				else {
					Console.WriteLine ("File '{0}' is not a project or solution.", file);
					return 1;
				}
			}
			
			ConsoleProgressMonitor monitor = new ConsoleProgressMonitor ();

			TargetRuntime targetRuntime = null;
			TargetRuntime defaultRuntime = Runtime.SystemAssemblyService.DefaultRuntime;
			if (runtime != null)
			{
				targetRuntime = MonoTargetRuntimeFactory.RegisterRuntime(new MonoRuntimeInfo(runtime));
				if (targetRuntime != null)
					Runtime.SystemAssemblyService.DefaultRuntime = targetRuntime;
			}

			IBuildTarget item;
			if (solFile != null)
				item = Services.ProjectService.ReadWorkspaceItem (monitor, solFile);
			else
				item = Services.ProjectService.ReadSolutionItem (monitor, itemFile);
			
			if (project != null) {
				Solution solution = item as Solution;
				item = null;
				
				if (solution != null) {
					item = solution.FindProjectByName (project);
				}
				if (item == null) {
					Console.WriteLine ("The project '" + project + "' could not be found in " + file);
					return 1;
				}
			}

			IConfigurationTarget configTarget = item as IConfigurationTarget;
			if (config == null && configTarget != null)
				config = configTarget.DefaultConfigurationId;
			
			ConfigurationSelector configuration;
			if (item is SolutionEntityItem)
				configuration = new ItemConfigurationSelector (config);
			else
				configuration = new SolutionConfigurationSelector (config);
			
			monitor = new ConsoleProgressMonitor ();
			BuildResult res = item.RunTarget (monitor, command, configuration);

			if (targetRuntime != null)
			{
				Runtime.SystemAssemblyService.DefaultRuntime = defaultRuntime;
				MonoTargetRuntimeFactory.UnregisterRuntime((MonoTargetRuntime) targetRuntime);
			}

			return (res == null || res.ErrorCount == 0) ? 0 : 1;
		}
		public ConsoleProjectLoadProgressMonitor (ConsoleProgressMonitor monitor)
		{
			AddSlaveMonitor (monitor);
		}
		public int Run (string [] arguments)
		{
			Console.WriteLine ("MonoDevelop Makefile generator");
			if (arguments.Length == 0) {
				ShowUsage ();
				return 0;
			}

			// Parse arguments
			foreach (string s in arguments) {
				if (s == "--simple-makefiles" || s == "-s") {
					generateAutotools = false;
				} else if (s.StartsWith ("-d:")) {
					if (s.Length > 3)
						defaultConfig = s.Substring (3);
				} else if (s [0] == '-') {
					Console.WriteLine (GettextCatalog.GetString ("Error: Unknown option {0}", s));
					return 1;
				} else {
					if (filename != null) {
						Console.WriteLine (GettextCatalog.GetString ("Error: Filename already specified - {0}, another filename '{1}' cannot be specified.", filename, s));
						return 1;
					}

					filename = s;
				}
			}

			if (filename == null) {
				Console.WriteLine (GettextCatalog.GetString ("Error: Solution file not specified."));
				ShowUsage ();
				return 1;
			}

			Console.WriteLine (GettextCatalog.GetString ("Loading solution file {0}", filename));
			ConsoleProgressMonitor monitor = new ConsoleProgressMonitor ();
			
			Solution solution = Services.ProjectService.ReadWorkspaceItem (monitor, filename) as Solution;
			if (solution == null) {
				Console.WriteLine (GettextCatalog.GetString ("Error: Makefile generation supported only for solutions.\n"));
				return 1;
			}

			if (defaultConfig == null || !CheckValidConfig (solution, defaultConfig)) {
				Console.WriteLine (GettextCatalog.GetString ("\nInvalid configuration {0}. Valid configurations : ", defaultConfig));
				for (int i = 0; i < solution.Configurations.Count; i ++) {
					SolutionConfiguration cc = (SolutionConfiguration) solution.Configurations [i];
					Console.WriteLine ("\t{0}. {1}", i + 1, cc.Id);
				}

				int configCount = solution.Configurations.Count;
				int op = 0;
				do {
					Console.Write (GettextCatalog.GetString ("Select configuration : "));
					string s = Console.ReadLine ();
					if (s.Length == 0)
						return 1;
					if (int.TryParse (s, out op)) {
						if (op > 0 && op <= configCount)
							break;
					}
				} while (true);

				defaultConfig = solution.Configurations [op - 1].Id;

			}

			SolutionDeployer deployer = new SolutionDeployer (generateAutotools);
			if (deployer.HasGeneratedFiles (solution)) {
				string msg = GettextCatalog.GetString ( "{0} already exist for this solution.  Would you like to overwrite them? (Y/N)",
						generateAutotools ? "Autotools files" : "Makefiles" );
				bool op = false;
				do {
					Console.Write (msg);
					string line = Console.ReadLine ();
					if (line.Length == 0)
						return 1;

					if (line.Length == 1) {
						if (line [0] == 'Y' || line [0] == 'y')
							op = true;
						else if (line [0] == 'N' || line [0] == 'n')
							op = false;
						else
							continue;
					} else {
						if (String.Compare (line, "YES", true) == 0)
							op = true;
						else if (String.Compare (line, "NO", true) == 0)
							op = false;
						else
							continue;
					}
					break;
				} while (true);
				if (!op)
					return 0;
			}

			DeployContext ctx = new DeployContext (new TarballDeployTarget (), "Linux", null);
			try {
				deployer.GenerateFiles (ctx, solution, defaultConfig, monitor);
			}
			finally {
				ctx.Dispose ();
				monitor.Dispose ();
			}

			return 0;
		}
		public static bool SupportsProjectType (string projectFile)
		{
			if (!string.IsNullOrWhiteSpace (projectFile)) {
				// If we have a project file, try to load it.
				try {
					using (var monitor = new ConsoleProgressMonitor ()) {
						return MSBuildProjectService.LoadItem (monitor, projectFile, null, null, null) != null;
					}
				} catch {
					return false;
				}
			}

			return false;
		}
Esempio n. 9
0
 public ConsoleProjectLoadProgressMonitor(ConsoleProgressMonitor monitor)
 {
     AddFollowerMonitor(monitor);
 }
Esempio n. 10
0
		public int Run (string[] arguments)
		{
			if (arguments.Length == 0 || arguments [0] == "--help") {
				Console.WriteLine ("");
				Console.WriteLine ("Project Export Tool");
				Console.WriteLine ("Usage: mdtool project-export <source-project-file> [-d:dest-path] [-f:format-name]");
				Console.WriteLine ("");
				Console.WriteLine ("Options");
				Console.WriteLine ("  -d:<dest-path>      Directory where the project will be exported.");
				Console.WriteLine ("  -f:\"<format-name>\"  Format to which export the project or solution.");
				Console.WriteLine ("  -l                  Show a list of all allowed target formats.");
				Console.WriteLine ("  -p:<project-name>   When exporting a solution, name of a project to be");
				Console.WriteLine ("                      included in the export. It can be specified multiple");
				Console.WriteLine ("                      times.");
				Console.WriteLine ("");
				Console.WriteLine ("  The format name is optional. A list of allowed file formats will be");
				Console.WriteLine ("  shown if none is provided.");
				Console.WriteLine ("");
				return 0;
			}
			
			string projectFile = null;
			string destPath = null;
			string formatName = null;
			bool formatList = false;
			List<string> projects = new List<string> ();
			string[] itemsToExport = null;
			
			foreach (string s in arguments)
			{
				if (s.StartsWith ("-d:"))
					destPath = s.Substring (3);
				else if (s.StartsWith ("-f:"))
					formatName = s.Substring (3);
				else if (s.StartsWith ("-p:"))
					projects.Add (s.Substring (3));
				else if (s == "-l")
					formatList = true;
				else if (projectFile != null) {
					Console.WriteLine ("Only one project can be converted at a time.");
					return 1;
				}
				else
					projectFile = s;
			}
			
			if (projectFile == null) {
				Console.WriteLine ("Project or solution file name not provided.");
				return 1;
			}
			
			projectFile = FileService.GetFullPath (projectFile);
			if (!File.Exists (projectFile)) {
				Console.WriteLine ("File {0} not found.", projectFile);
				return 1;
			}
			
			ConsoleProgressMonitor monitor = new ConsoleProgressMonitor ();
			monitor.IgnoreLogMessages = true;
			
			
			object item;
			if (Services.ProjectService.IsWorkspaceItemFile (projectFile)) {
				item = Services.ProjectService.ReadWorkspaceItem (monitor, projectFile);
				if (projects.Count > 0) {
					Solution sol = item as Solution;
					if (sol == null) {
						Console.WriteLine ("The -p option can only be used when exporting a solution.");
						return 1;
					}
					for (int n=0; n<projects.Count; n++) {
						string pname = projects [n];
						if (pname.Length == 0) {
							Console.WriteLine ("Project name not specified in -p option.");
							return 1;
						}
						Project p = sol.FindProjectByName (pname);
						if (p == null) {
							Console.WriteLine ("Project '" + pname + "' not found in solution.");
							return 1;
						}
						projects[n] = p.ItemId;
					}
					itemsToExport = projects.ToArray ();
				}
			}
			else {
				if (projects.Count > 0) {
					Console.WriteLine ("The -p option can't be used when exporting a single project");
					return 1;
				}
				item = Services.ProjectService.ReadSolutionItem (monitor, projectFile);
			}
			
			FileFormat[] formats = Services.ProjectService.FileFormats.GetFileFormatsForObject (item);
			
			if (formats.Length == 0) {
				Console.WriteLine ("Can't convert file to any format: " + projectFile);
				return 1;
			}
			
			FileFormat format = null;
			
			if (formatName == null || formatList) {
				Console.WriteLine ();
				Console.WriteLine ("Target formats:");
				for (int n=0; n<formats.Length; n++)
					Console.WriteLine ("  {0}. {1}", n + 1, formats [n].Name);
				Console.WriteLine ();
				if (formatList)
					return 0;
				
				int op = 0;
				do {
					Console.Write ("Convert to format: ");
					string s = Console.ReadLine ();
					if (s.Length == 0)
						return 1;
					if (int.TryParse (s, out op)) {
						if (op > 0 && op <= formats.Length)
							break;
					}
				} while (true);
				
				format = formats [op - 1];
			}
			else {
				foreach (FileFormat f in formats) {
					if (f.Name == formatName)
						format = f;
				}
				if (format == null) {
					Console.WriteLine ("Unknown file format: " + formatName);
					return 1;
				}
			}
			
			if (destPath == null)
				destPath = Path.GetDirectoryName (projectFile);
			destPath = FileService.GetFullPath (destPath);
			
			string ofile = Services.ProjectService.Export (monitor, projectFile, itemsToExport, destPath, format);
			if (ofile != null) {
				Console.WriteLine ("Saved file: " + ofile);
				return 0;
			}
			else {
				Console.WriteLine ("Project export failed.");
				return 1;
			}
		}
		public ConsoleProjectLoadProgressMonitor (ConsoleProgressMonitor monitor)
		{
			AddFollowerMonitor (monitor);
		}
 public ConsoleProjectLoadProgressMonitor(ConsoleProgressMonitor monitor)
 {
     AddSlaveMonitor(monitor);
 }