コード例 #1
0
ファイル: Program.cs プロジェクト: nightwolf13/a2po
        static void Main(string[] args)
        {
            ConvertionContext context = new ConvertionContext();

            if (!prepareArgs(args, context))
            {
                return;
            }

            switch (context.Command)
            {
            case ConvertionCmd.Unknown:
                Console.WriteLine("Unknown command line arguments. See help (-h)");
                break;

            case ConvertionCmd.A2Po:
                A2PoConvertion a2po = new A2PoConvertion(context);
                a2po.Convert();
                break;

            case ConvertionCmd.Po2A:
                Po2AConvertion po2a = new Po2AConvertion(context);
                po2a.Convert();
                break;

            case ConvertionCmd.Clean:
                cleanFolders(context);
                break;

            default:
                break;
            }

            Console.WriteLine("Done");
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: nightwolf13/a2po
        private static void cleanFolders(ConvertionContext context)
        {
            DirectoryInfo aProjDir = new DirectoryInfo(Path.Combine(context.AProjPath, AXmlHelper.AXML_PATH));

            FileInfo[] aFiles = aProjDir.GetFiles("~strings.xml", SearchOption.AllDirectories);

            foreach (FileInfo aFile in aFiles)
            {
                try
                {
                    aFile.Delete();
                    Console.WriteLine($"File {aFile.Directory.Name}/{aFile.Name} deleted");
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Cannot remove file {aFile.Directory.Name}/{aFile.Name}: {ex.Message}");
                }
            }

            DirectoryInfo poProjDir = new DirectoryInfo(context.PoProjPath);

            FileInfo[] poFiles = poProjDir.GetFiles("~*.po*");

            foreach (FileInfo pFile in poFiles)
            {
                try
                {
                    pFile.Delete();
                    Console.WriteLine($"File {pFile.Name} deleted");
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Cannot remove file {pFile.Name}: {ex.Message}");
                }
            }
        }
コード例 #3
0
 public void Initialize()
 {
     dictionary = new Dictionary <TypeConverterKey, ITypeConverter>();
     context    = new ConvertionContext(dictionary);
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: nightwolf13/a2po
        private static bool prepareArgs(string[] args, ConvertionContext context)
        {
            try
            {
                foreach (string arg in args)
                {
                    if (arg == "-h")
                    {
                        Console.WriteLine(Resource.Help);
                        return(false);
                    }

                    string[] cmdData = splitCommand(arg);

                    if (cmdData.Length > 0)
                    {
                        switch (cmdData[0])
                        {
                        case "x":
                            context.AProjPath = cmdData[1];
                            break;

                        case "p":
                            context.PoProjPath = cmdData[1];
                            break;

                        case "a":
                            switch (cmdData[1])
                            {
                            case "x2p":
                                context.Command = ConvertionCmd.A2Po;
                                break;

                            case "p2x":
                                context.Command = ConvertionCmd.Po2A;
                                break;

                            case "clean":
                                context.Command = ConvertionCmd.Clean;
                                break;
                            }
                            break;

                        case "t":
                            context.IsBackup = true;
                            break;

                        case "m":
                            context.MappingPath = cmdData[1];
                            break;

                        case "is":
                            context.IgnoreASource = true;
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
                return(false);
            }

            return(true);
        }