File handling for Nexss Programmer
npm install @nexssp/filesh
npm i -g @nexssp/file
`
Now you can use nexssp-file.
Usage
$3
Templates are downloaded based on the extension passed to the nexss file add command.
`sh
Below is the same as nexss programmer's
nexss file add myfile.js or just nexss f a myfile.js
nexssp-file add myfile.js
`
Just more here from Nexss Programmers docs:
`sh
nexss file list # list files for actual project (the same as nexss f l)
nexss file add # add file with selection
Predefined templates (which appears on the list) are passed without extension:
nexss file add myfile.js --template helloWorld
Absolute paths needs to have extension:
nexss file add myfile.js --template c:\templates\template1.js
`
!nexssProgrammer-SelectTemplateExampleCLI
File Templates - Languages configuration
Languages configuration are in the c:/Users/\/.nexss/languages/
Sometimes template file needs extra libraries or files or commands to run. You can do this by creating the file (as example below) and specify:
- files: _Array_ ["folder/file","file.ext"] - files to copy
- commands: _Array_ ["mv source dest","ps"] - commands to run after files are copied
- repos: _Array_ this is just to keep repositories (nothing is run)
- descriptions: _Array_ - displays messages after file is added
Example: Template is name Default.ahk, so below file with config for the template is called Default.ahk.js
`js
const config = {
files: ['3rdPartyLibraries/JSONParser.ahk'],
commands: ['ls -la', 'some second command'],
repos: ['https://github.com/dbohdan/jimhttp'],
descriptions: ['This information will be displayed after all files are copied and commands run.'],
}
module.exports = config
`
You also can use conditions like below: (example of Elixir language):
`js
const config = {
files: ['mix.exs'],
commands: ['IF exist src (cd src && mv mix.exs ../mix.exs && cd ..) else ( mix deps.get)'],
repos: [],
descriptions: ['!!! You may see some warnings at the very first run of your Elixir program.'],
}
`
Writing own Templates - Default and HelloWorld
Nexss Programmer uses JSON as interchange format between languages. To use fully Nexss Programmer features like Nexss Programmer projects programming language needs to have: Default and HelloWorld. (Most of the Nexss Programmer's languages already have implemented)
- Default - Just passing data and adding extra item in JSON "test" with value of "test"
- Hello World - Adding field HelloFrom: Version of the language
$3
#### Default
`sh
Default
nexss file add myfile.cpp --t=Default # This creates file from template Default
(This below only works on Nexss Programmer and it is not a part of the @nexssp/languages)
nexss myfile.cpp # and this should give kind of output (below C++):
{"start":1578507572953,"cwd":"C:\\xdata\\1\\1234","debug":true,"_":[],"outputCPP":"Hello from C++ 17!"}
``