Exemple #1
0
    public static int Main(string[] args)
    {
        if (args.Length == 0)
        {
            SimpleService.RunService();
            return(0);
        }

        var op   = args[0];
        var opr  = $"|{op}|";
        var argc = args.Length - 1;
        var arg1 = argc == 1 ? args[1] : null;

        if (op == "version" || op == "--version" || op == "-v")
        {
            if (argc != 0)
            {
                Libs.Abort(USAGE);
            }

            Console.WriteLine(VERSION);
            return(0);
        }

        if (op == "create")
        {
            if (argc != 1)
            {
                Libs.Abort(USAGE);
            }

            CreateProject(arg1);
            return(0);
        }

        if (op == "list" || op == "ls")
        {
            if (argc != 0)
            {
                Libs.Abort(USAGE);
            }

            SvcUtils.ListAllEasyServices();
            return(0);
        }

        var commands = "|check|status|test-worker|install|stop|start|remove|restart|log|";

        if (!commands.Contains(opr) || argc > 1)
        {
            Libs.Abort(USAGE);
        }

        if (arg1 != null && (arg1.Contains('/') || arg1.Contains('\\')))
        {
            if (!Directory.Exists(arg1))
            {
                Libs.Abort($"Directory \"{arg1}\" not exists");
            }

            Libs.SetCwd(arg1);
            arg1 = null;
        }

        if (op == "test-worker")
        {
            if (arg1 != null && arg1 != "--popup")
            {
                Libs.Abort($"Directory argument \"{arg1}\" should contain '/' or '\\'");
            }

            TestWorker(arg1 == "--popup");
            return(0);
        }

        if ("|check|status|install|".Contains(opr) && arg1 != null)
        {
            Libs.Abort($"Directory argument \"{arg1}\" should contain '/' or '\\'");
        }

        if ("|restart|log|".Contains(opr) && arg1 == "all")
        {
            Libs.Abort(USAGE);
        }

        if (arg1 == null)
        {
            ManageOneByConfFile(op);
        }
        else if (arg1 != "all")
        {
            ManageOneBySvrIdentity(op, arg1);
        }
        else
        {
            SvcUtils.ManageAll(op);
        }

        return(0);
    }