inkle / ink

inkle's open source scripting language for writing interactive narrative.
http://www.inklestudios.com/ink
MIT License
4.14k stars 494 forks source link

Add Inklecate version #721

Open videlanicolas opened 3 years ago

videlanicolas commented 3 years ago

Inklecate should have an option to display the version and exit early. In Linux, inklecate -v is reserved for verbose mode, so we should pick another letter (or add a long option --version).

It serves as a way to know what version of the binary we are working with, as well as testing the binary is working normally.

ephread commented 3 years ago

[…] as well as testing the binary is working normally.

It's a great idea, I second that. AFAIK, there's no subcommand / flag exiting with 0 as they all print the usage if an input isn't provided. Either @videlanicolas or I can likely create a PR for it.

I thought about showing a version in inklecate when I was tinkering with the LSP stuff. Would you consider merging such PR @joethephish?

With my very limited knowledge of .NET, I had planned to add a Directory.Build.props file at the root of the repo containing:

<Project>
  <PropertyGroup>
    <VersionPrefix>1.0.0</VersionPrefix>
  </PropertyGroup>
</Project>

Then, use Assembly.GetEntryAssembly().GetName().Version in code. Of course, that file would have to be updated by hand with each new version, but that isn't too far off what is already done in Inky. Maybe there's a better solution though.


Inklecate should have an option to display the version and exit early. In Linux, inklecate -v is reserved for verbose mode, so we should pick another letter (or add a long option --version).

It could also use -V (uppercase) which is what mono uses if we don't want to introduce long options.