static void Main()

in tools/FigmaSharp.Backup/Program.cs [35:125]


		static void Main (string[] args)
		{
			const string noimages = "--noimages";
			const string outputFile = "downloaded.figma";
			Console.WriteLine ();
			Console.ForegroundColor = ConsoleColor.DarkCyan;
			Console.WriteLine ("Figma Remote File Exporter");
			Console.WriteLine ("--------------------------");
			Console.WriteLine ();

			Console.ForegroundColor = default (ConsoleColor);

			#region Parameters

			if (args.Length == 0) {
				Console.ForegroundColor = ConsoleColor.Red;
				Console.WriteLine ("Error. No parameters defined");
				Console.ForegroundColor = default (ConsoleColor);

				Console.WriteLine ("");
				Console.WriteLine ($"dotnet FigmaFileExporter.dll [document_id] [figma_token] {{output_directory}} {{{noimages}}}");
				Console.WriteLine ("");
				return;
			}

			string token = null;
			if (args.Length > 1) {
				token = args[1];
			}

			if (string.IsNullOrEmpty (token)) {
				Console.WriteLine ("Error. Figma Token is not defined.");
				return;
			}

			Console.WriteLine ($"Token: {token}");

			string outputDirectory = null;
			if (args.Length > 2 && Directory.Exists (outputDirectory)) {
				outputDirectory = args[2];
			}

			if (outputDirectory == null) {
				Console.WriteLine ("Output directory is not defined. Using current directory like default.");
				outputDirectory = Directory.GetCurrentDirectory ();
			}

			Console.WriteLine ($"Default Directory: {outputDirectory}");

			var processImages = !args.Any (s => s.ToLower () == noimages);

			#endregion

			FigmaSharp.AppContext.Current.SetAccessToken (token);

			var fileId = args[0];

			var outputFilePath = Path.Combine (outputDirectory, outputFile);
			if (File.Exists (outputFilePath)) {
				File.Delete (outputFilePath);
			}

			Console.WriteLine ();
			Console.WriteLine ("[Import] Starting from remote document '{0}' ({1} images) in local file: {2}", fileId, processImages ? "with" : "without", outputFilePath);

			var query = new FigmaFileQuery (fileId);

			var fileProvider = new RemoteNodeProvider();
			fileProvider.Load(fileId);

			fileProvider.Save(outputFilePath);

			Console.WriteLine ("[Import] Success.");

			if (processImages) {

				var mainNode = fileProvider.Response.document.children.FirstOrDefault ();
				var figmaImageNodes = fileProvider.SearchImageNodes(fileProvider.Response.document)
					.ToArray ();

				Console.WriteLine ("[Import] Downloading {0} image/s...", figmaImageNodes.Length);

				var figmaImageIds = figmaImageNodes.Select (s => fileProvider.CreateEmptyImageNodeRequest (s)).ToArray ();
				if (figmaImageIds.Length > 0) {
					FigmaSharp.AppContext.Api.ProcessDownloadImages (fileId, figmaImageIds, scale: 2);
					FigmaSharp.AppContext.Api.ProcessDownloadImages(fileId, figmaImageIds, scale: 1);
					fileProvider.SaveResourceFiles(outputDirectory, ".png", figmaImageIds);
				}
				Console.WriteLine ("[Import] Success.");
			}
		}