morganstanley / winss

A supervision suite for Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows Supervision Suite (winss)

Lifecycle Archived License

winss is a small suite of tools for Windows that is designed to be as close to its counterpart S6 as possible using native Windows features. It's core function is to allow process supervision but it provides tools to supervise a collection of processes, handle logging, and also administration.

Using this framework it is simple to handle complex scenarios with little code such as adding/removing services and starting/stopping services in a particular sequence. There is no requirement to change an application to handle events like traditional Windows services. winss can handle simple console applications the way it should have been.

Documentation

You will find documentation for using winss on the Read the Docs site.

Getting Started for Developers

These instructions will get you a copy of winss up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy winss on a live system.

Prerequisites

The following are required to build and test winss.

Installing

A step by step guide for getting winss development environment running.

  1. Fork the winss repo.
  2. Clone the forked copy using git clone https://github.com/username/winss.git
  3. Run premake5 vs2015 in the src folder.
  4. Open The WindowsSupervisionSuite.sln in Visual Studio.
  5. Build Debug or Release.

Optional

Using an elevated command prompt:

  1. choco install opencppcoverage
  2. pip install cpplint

Running the tests

In the build\bin\x64\Debug directory there will be a winss-test.exe. Details on the command line options can be found here.

With code coverage

To run with code coverage then use OpenCppCoverage.exe installed as part of the optional prerequisites.

OpenCppCoverage.exe --modules=winss --sources=lib\winss\* --export_type=cobertura:build\coverage.xml -q -- build\bin\x64\Debug\winss-test.exe --gtest_output=xml:build\testresults.xml

There is a powershell script that can automate this for you:

powershell .\tools\Run-Tests.ps1

Check code style

winss follows the Google C++ Style Guide. To check then use cpplint

cpplint --extension=hpp,cpp --headers=hpp --filter=-build/c++11 <filename>

Or use the powershell script with an optional filename:

powershell  .\tools\Run-Lint.ps1 [FILENAME]

Deployment

These instructions will get you a copy of winss up and running on your local machine using a production version.

Prerequisites

  1. Visual C++ Redistributable for Visual Studio 2015 needs to be installed.

Installing

Download the latest Release build to your local system and add the directory to the %PATH%.

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

License

This project is licensed under the Apache License - see the LICENSE.md file for details

About

A supervision suite for Windows

License:Apache License 2.0


Languages

Language:C++ 99.5%Language:C 0.3%Language:Lua 0.2%Language:PowerShell 0.1%