示例#1
0
        public static bool InstallHooks(string moduleName)
        {
            if (!Yaml.Exists(moduleName))
            {
                return(false);
            }
            var hooks = Yaml.HooksParser(moduleName).Get();

            if (!hooks.Any())
            {
                return(false);
            }

            var gitFolder      = Path.Combine(Helper.CurrentWorkspace, moduleName, ".git");
            var gitHooksFolder = Path.Combine(gitFolder, "hooks");

            if (!GitFolderExists(moduleName, gitFolder))
            {
                return(false);
            }
            if (!Directory.Exists(gitHooksFolder))
            {
                Directory.CreateDirectory(gitHooksFolder);
            }
            CreateCementHook(gitHooksFolder);

            if (!IsUniqueHooks(moduleName, hooks))
            {
                return(false);
            }

            var updated = false;

            foreach (var hook in hooks)
            {
                updated |= InstallHook(moduleName, hook, gitHooksFolder);
            }
            return(updated);
        }