/// <summary> /// Here it all begins /// </summary> /// <param name="args"></param> public static void Main(string[] args) { var log = new ConsoleLogger(typeof(Program)); CmdArgs parsedArgs; try { parsedArgs = Args.Parse <CmdArgs>(args); } catch (ArgException e) { Console.WriteLine(ArgUsage.GenerateUsageFromTemplate <CmdArgs>( )); log.Error($"Failed to parse arguments: {e.Message}"); return; } try { IOrganizationService sourceService = null; var destinationSystem = parsedArgs.DestinationSystem; IOrganizationService destinationService = OrganizationServiceFactory.ConnectByConnectionString(destinationSystem); if (parsedArgs.SourceSystem != null) { sourceService = OrganizationServiceFactory.ConnectByConnectionString(parsedArgs.SourceSystem + "RequireNewInstance = True;"); } var deployer = new PluginDeployer(sourceService, destinationService, parsedArgs.Prefix, log); if (!deployer.LoadAssembly(parsedArgs.AssemblyPath)) { return; } var assemblyName = deployer.AssemblyPlugin.GetName( ).Name; var destinationAssembly = deployer.RetrievePluginAssembly(destinationService, assemblyName); var createFromScratch = parsedArgs.Create; if (createFromScratch) { deployer.CreateFromScratch(parsedArgs, destinationAssembly); } else { deployer.UpdateSystem(parsedArgs, destinationAssembly); } } catch (Exception ex) { log.Error($"Exception occured, terminating. Exception: {GetAllExceptionMessages( ex )}\n\n"); log.Error($"Stacktrace: {ex.StackTrace}"); } }
public WebResourceDeployer(CmdArgs args, ILog log, ILog err) { var packagesFilename = string.IsNullOrEmpty(args.PackagesXml) ? throw new Exception("Package.xml path was not given, please provide path.") : args.PackagesXml; Args = args; this.log = log; this.err = err; Service = OrganizationServiceFactory.ConnectByConnectionString(args.ConnectionString); PackageCollection = FileLoader.LoadPackages(packagesFilename); }