Get started with LINQPad and the lprun cli scripting environment with one file.
Clone the repo or download the setup.bat file:
powershell -Command "Invoke-WebRequest https://raw.githubusercontent.com/mattjcowan/lp/master/setup.bat -OutFile setup.bat"
From the command line, run:
.\setup.bat
Once everything is up and running, optionally add the directory to your path variable to easily run your scripts.
Refer to the LINQPad and lprun documentation for more information.
Script | Description | |
---|---|---|
db-to-json.linq | Exports a database schema to a json file. | Source |
static-gen.linq | Generate code or files using handlebars templates, json data, and linq scripts. | Source |
serve-api.linq | Run a ServiceStack Self-Hosted API, by specifying a port and assemblies with ServiceStack Services. | Source |
This script will extract the schema of a database (MySql, SqlServer, Oracle, PostgreSql) and export it to a json file. Use this in combination with the static-gen.linq script to generate files and/or code from the json file.
Download the script:
powershell -Command "Invoke-WebRequest https://raw.githubusercontent.com/mattjcowan/lp/master/linqpad/queries/db-to-json.linq -OutFile .\linqpad\queries\db-to-json.linq"
Run the script:
.\linqpad\lprun.exe .\linqpad\queries\db-to-json.linq /dialect=SqlServer /output=adventureworks.json /connectionstring="Data Source=.\sqlexpress;Initial Catalog=AdventureWorks2014;Integrated Security=True"
This script executes the following:
- Executes any *.linq files in a data directory and outputs the results of the scripts (if the result is valid JSON) to *.json files with the same name as the script.
- Reads all *.json files in a data directory and adds them to the global dictionary context with the key being the name of the file (without the extension) and the contents the value
- Compiles all *.hbs (handlebars) files in a templates directory starting with a "" character and registers them as partials, with the name of the partial being the name of the file (minus the "" character and without the extension)
- Compiles and renders all other *.hbs (handlebars) files (passing in the global context populated from the data files above) and outputting them to a specified 'output' directory. No file extensions are added to the files; so the *.hbs template file names should have the intended extension as part of their name (i.e.: index.html.hbs, DbRepository.cs.hbs).
Download the script:
powershell -Command "Invoke-WebRequest https://raw.githubusercontent.com/mattjcowan/lp/master/linqpad/queries/static-gen.linq -OutFile .\linqpad\queries\static-gen.linq"
Run the script:
.\linqpad\lprun.exe .\linqpad\queries\static-gen.linq /data=aw\data /templates=aw\templates /output=aw\output
Rudimentary ServiceStack Self-Hosted API runner... For a more advanced dev server runner, check out sswc.
Download the script:
powershell -Command "Invoke-WebRequest https://raw.githubusercontent.com/mattjcowan/lp/master/linqpad/queries/serve-api.linq -OutFile .\linqpad\queries\serve-api.linq"
Run the script:
.\linqpad\lprun.exe .\linqpad\queries\serve-api.linq 1338 path\to\assembly1.dll path\to\assembly2.dll path\to\assembly3.dll