-
SideCarCLI–looking at past and at future
It was interesting to develop the project for command line same as for cloud design pattern,https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar . The problem were more about architecture organizing features to be easy understandable ,testing the application writing about rather than technical,about how to make the application. Other,it was a pretty simple project,that can be useful in CI /…
-
SideCarCLI- diagram for how it is working
Usually,a picture is better than words . So,I can explain how SideCarCLI works – or I can draw an image. The easiest way to draw an image is with https://mermaidjs.github.io/ – that has also a live editor at https://mermaid-js.github.io/mermaid-live-editor . The code for generating the picture is sequenceDiagram participant S as SideCar participant R as…
-
My GITHUB integrations / apps
Github has integrations apps – means bots that automatically interacts with your repository. Those are the bots most used by me: No Name Description 1 All Contributors https://github.com/settings/installations/7389985 Add contributions to the repository. Example at https://github.com/ignatandrei/netcoreblockly,see contributions added automatically 2 Img Bot https://github.com/settings/installations/310858 Automatically optimizes the images and creates a PR for them .…
-
Friday Links 395
Google Cloud Platform Blog: Your favorite languages,now on Google App Engine timelion/FUNCTIONS.md at master · elastic/timelion Data | The World Bank timelion/FUNCTIONS.md at master · elastic/timelion Fasting for three days can regenerate entire immune system,study finds 2016 JavaScript Rising Stars Module Bundling and Webpack in Simple Terms AppSec Europe 2017: Web Application Security Essentials Troy…
-
SideCARCLI–Finish process after some time
One of the feature is to let the original process execute just a limited amount of time. For this,I have defined an option var maxSeconds = app.Option(“-mS|–maxSeconds”,”max seconds for the StartApp to run”,CommandOptionType.SingleOrNoValue); and the code for waiting is Process p = new Process() { StartInfo = pi }; //code var res=p.WaitForExit(this.MaxSeconds); //code if (res)…
-
SideCarCLI – Line interceptors
For the SideCarCLI I have the concept of Line Interceptors. That means for each line from the original program another program will be start . The json looks like this “LineInterceptors”: [ { “Name”: “WindowsStandardWindowsOutputInterceptor”, “Arguments”: “/c echo \”{site} {line}\””, “FullPath”: “cmd.exe”, “FolderToExecute”: null, “InterceptOutput”: true }, { “Name”: “NextInterceptor”, “Arguments”: “/c echo {line}”, “FullPath”:…
-
SideCarCLI-send arguments to interceptors
For the SideCarCLI I want the interceptors ( line,finish,timer) to receive parts of the command line of the original application. But how to parse the command line and how to pass to the interceptors ? RegEx to the rescue! I will let the user define the command line of the starting application and parse the…
-
SideCarCLI- finish interceptors
The idea for FinishInterceptors is very simple – when the initial process,StartApp,is finished –then run some other programs . And here comes some decisions: Pass the ExitCode of the StartApp ? ( YES) Pass the output lines of text of the StartApp ? ( NO – could be enormous ) What to do if the…
-
Friday Links 394
Sciter/HTML/C# based desktop apps walkthrough – CodeProject The Best Sites for Storing Photos Online Improving .NET Application Performance – DaedTech Was Linus Torvalds Right About C++ Being So Wrong? – Slashdot THESE ARE REAL COMPLAINTS RECEIVED BY “THOMAS COOK HOLIDAYS” FROM DISSATISFIED CUSTOMERS – Newsroom24 Expression Trees in C# with an example – DotNetCrunch Sharing…
-
SideCarCLI–create releases
Because all code is in Github,the easy way is GitHub Actions,https://github.com/features/actions . Some modifications are required on CSPROJ file to build for Linux or Windows : <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers> </PropertyGroup> And after 6 commits,this is the ( almost) final version: name: .NET Core on: push: branches: [ main ] pull_request: branches: [ main…
I am ok , you are ok