public void ExecutePreInstall_ExecutesDiscoveredHooks()
        {
            var fakeHook = new Hook("file.txt", HookType.File);
            _finder.Setup(x => x.DiscoverHooks()).Returns(new Hooks {PreInstall = new List<Hook> {fakeHook}});

            _ihe.ExecutePreInstall();

            _fakeHookRunner.Verify(x => x.ExecuteHook(fakeHook, null), Times.Once());
        }
        public void ExecuteHook(Hook hook, string arguments = null)
        {
            _log.Info("Executing package hookFileName: " + hook.FileName);

            var hookFilename = hook.FileName;
            var startInfo = new ProcessStartInfo
                {
                    FileName = hookFilename,
                    Arguments = arguments ?? string.Empty,
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                };

            CopyVariablesToEnvironment(startInfo);
            PrefixCommonScriptRuntimes(hookFilename, startInfo);
            StartProcess(hookFilename, startInfo);
        }
 public bool SupportsHook(Hook hook)
 {
     return hook.Type == HookType.File;
 }
 public bool SupportsHook(Hook hook)
 {
     return hook.Type == HookType.Class;
 }
 public void ExecuteHook(Hook hook, string arguments = null)
 {
     _log.Info("Executing plugin hook: " + hook);
     var classs = (IHook)Activator.CreateInstance(hook.Class);
     classs.Execute(_config);
 }