Commit Graph

32 Commits (8013ab3d9d24d734a34a4cdc49516fb1f1342e1c)

Author SHA1 Message Date
Buddhika Chathuranga 8013ab3d9d
Upate extension yaml support
Remove old object query class and add methods to extension which can take yaml objects as aruments.

Add unit test for runawayprocesskiller for yaml support
2020-08-21 09:24:40 +08:00
Buddhika Chathuranga 8c4241369c
Yaml support for extensions 2020-08-21 09:23:36 +08:00
Buddhika Chathuranga 853e5aeec6
Support both XML and YAML configuration + Remove support for *.vshost files and folder hierarchy lookup which used to be an undocumented development features (#641)
* Sync with upstream (#3)

* Add a Dependabot configuration (#558)

* Add a Dependabot configuration

* Update dependabot.yml

* Bump NUnit3TestAdapter from 3.16.0 to 3.16.1 (#561)

Bumps [NUnit3TestAdapter](https://github.com/nunit/nunit3-vs-adapter) from 3.16.0 to 3.16.1.
- [Release notes](https://github.com/nunit/nunit3-vs-adapter/releases)
- [Commits](https://github.com/nunit/nunit3-vs-adapter/compare/V3.16...V3.16.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Microsoft.NET.Test.Sdk from 16.4.0 to 16.6.1 (#563)

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 16.4.0 to 16.6.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v16.4.0...v16.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.29 to 3.0.40 (#559)

* Bump ilmerge from 3.0.29 to 3.0.40

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.29 to 3.0.40.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

* Define $(ILMergeVersion)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Bump coverlet.collector from 1.2.0 to 1.3.0 (#560)

Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/coverlet-coverage/coverlet/releases)
- [Commits](https://github.com/coverlet-coverage/coverlet/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.40 to 3.0.41 (#571)

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.40 to 3.0.41.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Update winsw to work with both XML and YAML config

Add logic to select configuration type
Remove redundant codes for config file finding

* Update ConfigType.cs file encoding

* Reference yamlonfiguration.md file from the Readme.md

* Refactor yaml and xml support

Update  naming conventions in Readme.md
Remove ConfigType.cs

* Refactors

* Update Program.cs

* Remove recursive look for configurations file

Remove trimming .vshost extension in executable file name

* Update Program.cs

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>
2020-08-10 13:23:54 +02:00
Buddhika Chathuranga 13cfe45490
Update Yaml Configuration support (#596)
* Sync with upstream (#3)

* Add a Dependabot configuration (#558)

* Add a Dependabot configuration

* Update dependabot.yml

* Bump NUnit3TestAdapter from 3.16.0 to 3.16.1 (#561)

Bumps [NUnit3TestAdapter](https://github.com/nunit/nunit3-vs-adapter) from 3.16.0 to 3.16.1.
- [Release notes](https://github.com/nunit/nunit3-vs-adapter/releases)
- [Commits](https://github.com/nunit/nunit3-vs-adapter/compare/V3.16...V3.16.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Microsoft.NET.Test.Sdk from 16.4.0 to 16.6.1 (#563)

Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 16.4.0 to 16.6.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v16.4.0...v16.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.29 to 3.0.40 (#559)

* Bump ilmerge from 3.0.29 to 3.0.40

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.29 to 3.0.40.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

* Define $(ILMergeVersion)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Bump coverlet.collector from 1.2.0 to 1.3.0 (#560)

Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/coverlet-coverage/coverlet/releases)
- [Commits](https://github.com/coverlet-coverage/coverlet/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ilmerge from 3.0.40 to 3.0.41 (#571)

Bumps [ilmerge](https://github.com/dotnet/ILMerge) from 3.0.40 to 3.0.41.
- [Release notes](https://github.com/dotnet/ILMerge/releases)
- [Commits](https://github.com/dotnet/ILMerge/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Update WinSW Yaml Support

Add sample-allOption.yml
Update timespan values to aprse from strings. Now user can specify timespan values like 5sec.
Implement unimplemented properties in YmlConfiguration

* Update configurations namings

* Move ParseTimeSpan to seperate utility class

* Update Environment Variable Syntax

Now env variables support name: value: syntax

* Add YamlConfigFile.md

Add yaml user documentation
Update YamlSupport Unit test

* Update YamlConfigFile.md

Summerize the yaml documentation and reference the XmlConfigFile.md for more details

* Update YamlDoc

* Update doc/YamlConfigFile.md

Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

* Update yaml configurations to expand environment variables

* Update doc/YamlConfigFile.md

Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Next Turn <45985406+NextTurn@users.noreply.github.com>
2020-07-29 14:00:39 +02:00
NextTurn 7554d0ecbd Fix file permission and line ending issues 2020-07-25 08:45:19 +08:00
Buddhika Chathuranga 10d3a6113f
YAML Configurations Support (GSoC - 2020) (#543)
* Add ServiceDesciptorYaml.cs

* Add YamlConfigurations.cs
YmlDotNet library added

* Update YamlConfigurations.cs

* Add download configuration to YamlConfiguration

* Revert "Add download configuration to YamlConfiguration"

This reverts commit f150de13b0.

* Add  ServiceDescriptrYaml unit test
Update YamlConfigurations.

* Confid files seperated
Download class refactored
Unit test updated

* Change nullable attributes.

* Refactor IWinSWConfiguration and Logging settings propagation

* Update YamlConfigurations.cs

* Update configuration FailureActions

* Update Yaml Confifurations

* Update YAML Configuration

* Update yaml configurations

* Update Yaml Configurations

* Yaml Configuration refactored

* Refactored YamlConfigurations

* Update serviceaccount and log configs

* YAML_SC_ACTION method name channged

* Refacored Download class. Field names changed to PascalCase readonly

* Add seperate download class to YamlConfigurations and create and return List<Download>

* Created DefaultWinSWSettings singleton

* Refactor variable name

* Update StopExecutable

* Nullable references updated

* Null references updated

* Add sanity checks for yaml deserializing.

* Implement Log Defaults

* Call logdefaults in YAMLConfigurations

* Update defaults value of ServiceAccout

If serviceaccoutn is not specified default ServiceAccount object will be provided from the Defautls.

* Merge build.yml with master

* Update YamlSeriviceDescriptor

Remove invalid Name field from ServiceAccout
Add BaseName logics to defults
merge build.yml with master

* Update IWinSWConfiguration Support

Now can use any IWinSWConfiguration type instead of ServiceDescriptor. We can use both ServiceDescriptor or ServiceDescriptorYaml.

* Update LogMode unit test

* ServiceAccount configurations refactored

Get all ServiceAccount configuration into a single ServiceAccout class.

* Update default BasePath

* Resolve Merge conflicts

* Resolve Merge Conflicts

* Update YamlDownload configs

* Fix null reference issue in arguments

* Update ServiceAccount configs in XML ServiceDescriptor

* remove BOM header

* Update environment variable configurations

Co-authored-by: Oleg Nenashev <o.v.nenashev@gmail.com>
2020-07-21 18:57:27 +02:00
NextTurn e116368fc4 Standardize coding styles 2020-07-13 09:19:30 +08:00
NextTurn f260d7e5d9 Reorganize interop codes 2020-05-19 00:23:09 +08:00
NextTurn 09cdb0a0ec
Support <startarguments> and <stoparguments> 2020-05-09 11:49:25 +08:00
Oleg Nenashev 9bae4caf90
Merge pull request #361 from NextTurn/expand
Ensure that environment variables are loaded before resolving configurations
2020-04-06 09:40:58 +02:00
NextTurn f83916d430
Load environment variables first 2020-03-31 13:45:51 +08:00
NextTurn 2c22e62aa0
Fix default domain name 2020-03-31 08:40:25 +08:00
NextTurn 23c2202406
Support security descriptor string 2020-03-28 14:50:19 +08:00
NextTurn da71f5dd83
Annotate more nullable variables 2020-02-06 10:55:13 +08:00
NextTurn b3d4b466aa
Don't print stack trace to console for invalid config files 2020-01-24 15:42:07 +08:00
NextTurn 93b2212774
Suppress warnings for confusing designs 2020-01-20 12:19:07 +08:00
NextTurn 5be8708701
Annotate WinSWCore for nullable reference types 2020-01-20 12:18:58 +08:00
NextTurn 08bae2a682
Use built-in types 2020-01-14 14:05:03 +08:00
NextTurn 9808ae88e8
Clean up styles 2020-01-14 14:04:25 +08:00
jeacott1 e2bf78f1df adds a <hidewindow>true</hidewindow> config switch
so that launching bat files on legacy machines
running Interactive Services Detection don't balk.
2019-05-28 13:25:17 +09:30
Dinz 9014f38b9c Added Support for the log appender roll-by-size-time to zip older files (#259)
* Introduced the following new elements.
1. logname - you can override the name of the log file rather than using the EXE name, this means you don't have to call your EXE a different name, just name the winsw exe different. Default's the name to the EXE as before.
2. outfiledisabled - you can disable writing to the out file. Defaults to false.
3. errfiledisabled - you can disable writing to the error file. Defaults to false.
4. outfilepattern - you can choose the pattern of the out file. Defaults to .out.log.
5. errfilepattern - you can choos the pattern of the error file. Defaults to .err.log.

* Downgraded from C#7.0 syntax.

* Applied reviewers comment

* not required

* removed the key

* Added unit test for new fields logname, outfiledisabled, errfiledisabled and errfilepattern.

Created a new appender called roll-by-size-time see class RollingSizeTimeLogAppender, this appender supports rolling by time and size and rolling at a specific time each day.

Added unit test for the new appender.

Added a new option testwait which is similar to test but waits for the user to press any key before calling the stop method.

* Update loggingAndErrorReporting.md

* Cannot use $ string.format syntax, downgraded code to string.format.

* Another syntax found of $

* Fixed a unit tests

* Added support to zip files.

* Added error handling

* Removed the zip call at startup.

* Fix issue with UTC

* Update loggingAndErrorReporting.md

Documented the new fields zipolderthannumdays and zipdateformat

* Update loggingAndErrorReporting.md

* Applied Code review

* Fixed a BST bug

* Added zip lib
2018-06-19 18:39:03 +02:00
Dinz 221d30f271 Introduced the following new elements. (#247)
* Introduced the following new elements.
1. logname - you can override the name of the log file rather than using the EXE name, this means you don't have to call your EXE a different name, just name the winsw exe different. Default's the name to the EXE as before.
2. outfiledisabled - you can disable writing to the out file. Defaults to false.
3. errfiledisabled - you can disable writing to the error file. Defaults to false.
4. outfilepattern - you can choose the pattern of the out file. Defaults to .out.log.
5. errfilepattern - you can choos the pattern of the error file. Defaults to .err.log.

* Downgraded from C#7.0 syntax.

* Applied reviewers comment

* not required

* removed the key

* Added unit test for new fields logname, outfiledisabled, errfiledisabled and errfilepattern.

Created a new appender called roll-by-size-time see class RollingSizeTimeLogAppender, this appender supports rolling by time and size and rolling at a specific time each day.

Added unit test for the new appender.

Added a new option testwait which is similar to test but waits for the user to press any key before calling the stop method.

* Update loggingAndErrorReporting.md

* Cannot use $ string.format syntax, downgraded code to string.format.

* Another syntax found of $

* Fixed a unit tests
2017-09-18 18:22:01 +02:00
Dos Moonen 138bca822d Noticed a small 'error' and fixed it 2017-06-27 09:58:04 +02:00
Oleg Nenashev d192c03638 #183 - Add core logic for the DelayedStart option support (#205)
* #183 - Add core logic for the DelayedStart option support

* #183 - Add unit tests

* #183 - Update documentation and the configuration sample

* #183 - Use API calls to set the DelayedAutoStart flag as @jtnord proposed

* #183 - Refactor the project to use `delayedAutoStart`
2017-04-18 23:23:52 +02:00
Oleg Nenashev 790b3a6541 Finalize the Download Command changes (#203)
* Refactor parameter parsing in Download.cs, add more checks

* Handle Download#unsecureAuth as boolean

* Parse Enums in a case-insensitive mode, propagate error correctly

* Add tests for the newly introduced functionality

* Update the configuration sample to reflect the recent changes

* Update the sample text according to the proposal from @nightman68
2017-04-13 16:49:59 +02:00
Oleg Nenashev d665afc91c Fix #178 - Use proper default value when handling Arguments 2017-01-04 23:15:42 +01:00
Oleg Nenashev 9399544ef5 Fix #159 - Streamline TimeSpan parsing logic, get rid of the buggy code 2016-12-29 11:02:24 +01:00
Oleg Nenashev 67bfc6bcd2 Fix #171 - Handle stopexecutable as an optional property in ServiceDescriptor
Tests will be pushed later
2016-12-23 22:24:24 +01:00
Oleg Nenashev 14f32cd309 Decouple Default Settings to a separate publicly accessible class.
Required for tests.
2016-12-23 21:18:59 +01:00
Oleg Nenashev 5e835479ae Generalize usage of System environment variables for processes 2016-11-30 12:36:03 +01:00
Oleg Nenashev 80295db8d7 Merge branch 'master' into winsw-2.0
Conflicts:
	winsw.csproj
2016-11-10 13:25:42 +01:00
Oleg Nenashev 3af1f72658 Support merging plugins into winsw.exe executable
* Decouple Core components into WinSWCore projects.
* Use ILMerge to merge everything (inc. Plugins) into a single executable

TODO: API Should be refactored before the publishing
TODO: check signing procedure

Signed-off-by: Oleg Nenashev <o.v.nenashev@gmail.com>

Conflicts:
	src/Core/ServiceWrapper/winsw.csproj

Conflicts:
	src/Core/ServiceWrapper/Main.cs
	src/winsw.sln
2015-02-08 14:28:15 +03:00