예제 #1
0
        public static TM_UserData   load_UserData_FromGitRepo(this TM_UserData userData)
        {
            try
            {
                var gitConfig = userData.tmConfig().Git;
                if (gitConfig.UserData_Git_Enabled.isFalse())
                {
                    return(userData);
                }

                var gitLocation = TM_Xml_Database.Current.TM_Server_Config.getActive_UserData_Repo_GitPath();
                if (gitLocation.valid())
                {
                    //Adjust Path_UserData so that there is an unique folder per repo
                    var extraFolderName = "_Git_";

                    // extra mode to switch of multiple Git_Hosting in same server
                    extraFolderName += gitLocation.replace("\\", "/").split("/").last().remove(".git").safeFileName();

                    userData.Path_UserData = userData.Path_UserData_Base + extraFolderName;
                    //userData.Path_UserData.createDir();
                    "[handleExternalGitPull] userData.Path_UserData set to: {0}".debug(userData.Path_UserData);

                    if (MiscUtils.online().isFalse())
                    {
                        return(userData);
                    }

                    if (userData.Path_UserData.isGitRepository())
                    {
                        if (gitConfig.UserData_Auto_Pull.isFalse())     //skip if this is set
                        {
                            return(userData);
                        }

                        "[TM_UserData][GitPull]".info();
                        var nGit = userData.Path_UserData.git_Open();
                        nGit.pull();
                        //var nGit = userData.Path_UserData.git_Pull();
                        userData.pushUserRepository(nGit);
                    }
                    else
                    {
                        var start = DateTime.Now;
                        "[TM_UserData][GitClone] Start".info();
                        gitLocation.git_Clone(userData.Path_UserData);
                        "[TM_UserData][GitClone] in ".info(start.duration_To_Now());
                    }
                }
            }
            catch (Exception ex)
            {
                ex.log("[handleExternalGitPull]");
            }
            return(userData);
        }
예제 #2
0
        public static TM_UserData   handle_External_GitPull(this TM_UserData userData)
        {
            try
            {
                //var gitLocationFile = HttpContextFactory.Server.MapPath("gitUserData.config");
                var gitLocationFile = TMConfig.Current.getGitUserConfigFile();
                if (gitLocationFile.fileExists())
                {
                    "[TM_UserData][handleExternalGitPull] found gitConfigFile: {0}".info(gitLocationFile);
                    var gitLocation = gitLocationFile.fileContents();
                    if (gitLocation.notValid())
                    {
                        return(userData);
                    }
                    //if (userData.Path_UserData.dirExists() && userData.Path_UserData.files().empty())
                    //    userData.Path_UserData.delete_Folder();

                    //Adjust Path_UserData so that there is an unique folder per repo
                    var extraFolderName = "_Git_";

                    // extra mode to switch of multiple Git_Hosting in same server
                    extraFolderName += gitLocation.replace("\\", "/").split("/").last().remove(".git").safeFileName();

                    userData.Path_UserData = userData.Path_UserData_Base + extraFolderName;
                    //userData.Path_UserData.createDir();
                    "[handleExternalGitPull] userData.Path_UserData set to: {0}".debug(userData.Path_UserData);

                    if (MiscUtils.online().isFalse())
                    {
                        return(userData);
                    }

                    if (userData.Path_UserData.isGitRepository())
                    {
                        "[TM_UserData][GitPull]".info();
                        var nGit = userData.Path_UserData.git_Pull();
                        userData.pushUserRepository(nGit);
                    }
                    else
                    {
                        var start = DateTime.Now;
                        "[TM_UserData][GitClone] Start".info();
                        gitLocation.git_Clone(userData.Path_UserData);
                        "[TM_UserData][GitClone] in ".info(start.duration_to_Now());
                    }
                }
            }
            catch (Exception ex)
            {
                ex.log("[handleExternalGitPull]");
            }
            return(userData);
        }