예제 #1
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();
                    "[TM_UserData] [handleExternalGitPull] userData.Path_UserData set to: {0}".debug(userData.Path_UserData);

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

                    if (userData.Path_UserData.isGitRepository())
                    {
                        "[TM_UserData] [GitPull]".info();
                        var result = userData.Path_UserData.git_Pull();
                        if (result)
                        {
                            userData.pushUserRepository(userData.Path_UserData.git_Open());
                        }
                    }
                    else
                    {
                        userData.clone_UserDataRepo(gitLocation, userData.Path_UserData);
                    }
                }
            }
            catch (Exception ex)
            {
                ex.log("[TM_UserData]  [handleExternalGitPull]");
            }
            return(userData);
        }