2021-04-08 04:24:06 -07:00
2021-04-08 03:01:40 -07:00
2021-04-08 03:37:53 -07:00
2021-04-05 04:22:57 -07:00
2021-04-08 04:23:54 -07:00
2021-04-08 03:07:40 -07:00

======
=== SlideScript
======
A simple, user friendly scripting language for the average person. SS is meant to
be simple, and work as its documented as. SlideScript is a bin tool to say the
least and is a helpful *nix userland tool in the CLI

-----
Compiling
-----
* Compile SS using the make command.
* Install SS using make install.
* Modify test.ss to learn the basics of SS.
* Run ./test.ss to execute the script.

***NOTE: if compiling on OSX/BSD, please uncomment #define BSD in src/config.h***

-----
Documentation
-----
Here is a list of functions and features that SlideScript comes with 
at this moment!

* Commenting! Examples: 
   * `# Comment is real in this one`

* Read and writing to flat files. Examples:
   * `write "file.txt" "This will be written to file.txt"`
   * `read "file.txt"`

* Basic math expressions
   * `calc "45 / 5"` or `calc "255.3 * 442.77"`
   * Of course addition and subtraction as well!

* Delete example:
   * `delete "file.txt"`

* Execute example:
   * `exec "ls -al"`

* Print example:
   * `print "Hi everyone!"`

* Sleep (Zzz) example (sleeps for 2 seconds):
   * `sleep 2`

* Variable setting and passing
   * `filename=file.txt` -> filename
   * `filedata=File '%filename%' is being moved to moo` -> %filename% is populated as file.txt
   * `write "%filename%" "%filedata%"` -> writes filedata contents to file.txt as expected.

* Decoding and encoding strings
   * `encrypt "Regular string"` -> Converts to encrypted string 'Uhjvqds#xuulqj'
   * `decrypt "Uhjvqds#xuulqj"` -> Converts back to 'Regular string'

* MD5 file checking
   * `md5 "file.txt"` -> outputs filename and md5 hash

* Layered piping
   * `md5 "file.txt" | encrypt "%PIPE"  | write "file.txt.md5.enc" "%PIPE%"` -> writes output of md5 to file.txt.md5

* Networking functions
   * `netlisten "<port>" "<search>" "<respond>"` -> listens on <port> and replies <respond> on <search> found from outside
   * `nettoss "<address>" "<port>" "<data>"` -> binds to outside server at <address>:<port> and pushes <data> thus, disconnecting
   * `nethttp "<port>" "<forkval>"` -> throws up a web server on <port> in the current working directory, 
     forkval (0 or 1, 0 don't fork into background / 1 do).

This will change rapidly as of currently, slidescript is in beavy development! To get the feel of the scripting,
the best bet is to take a look at some of the slidescript examples in 'examples/'

functions.ss -> displays most basic functions
net-http.ss -> displays built in http web server
net-listen.ss -> displays slidescript's raw listen socket
net-toss.ss -> displays the 'client side' networking function.


-----
Todo list
-----

This section will obviously expand and adapt to the direction of the language. This is going to change rapidly.

* Add in-script functions
* Add script including
* Loops, and if statements
* More networking function flexibility
* File pull / file push functionality

-----
Done
-----

List of finished features, in a rough summary.

* Simple syntax checking and error reporting 
* Up to 32 layer function piping
* Support for linux system calls
* Network listen socket, toss function
* Builtin HTTP server for disposeable use, can be ran in the foreground or forked into the background 
* Read and write from file
* Some simple functions
* Shebang handling
* Variable support

-----
Changelog
-----

Changes between version bumps in SlideScript. Hoping to have a lightweight top-down scripting language
by V1.0.0 release! From there it will be molding and preserving the art.

* V0.4.0
   * Added calc function for floating math equations
   * Cleaned up some more syntax handling, as well as bugs
   * Added structured and savable multi-layer piping up to 32 functions deep

* V0.3.3
   * Added first networking functions: netlisten, nettoss, nethttp.
   * Embedded web server functionality
   * Cleaned up code
   * Improved syntax handling on functions

* V0.3.0
   * Added simple 2 layer function piping for more useful tasks
   * Fixed a couple core dump bugs
   * Now reads files into memory, and then forces text files through SS, allows for in file variables
   * Added "md5" functionality
   * Multi-formal working syntax

* V0.2.1
   * Added "decrypt" decode function
   * Added "encrypt" encode function
   * Added system "exec" function
   * Added basic syntax handling, for a more uniform language

* V0.2.0
   * Added "delete" function
   * Added embedded variable handling to SS functions (variables can be used like everywhere!)
   * Added linux system calls via exec
   * Some cleaning up.

* V0.1.1
   * Added variable handling with a buffer size of 2KB per variable, and cap of 2048 variables.
   * Now operates under the shebang!

-----
Contributions
-----
Robert (OldCoder) Kiraly -> shebang support and string manipulations
(C) Copyright 2014-2021 Chris Dorman, some rights reserved (GPLv2)
Description
No description provided
Readme 2.1 MiB
Languages
C 87.5%
HTML 11.1%
CSS 1.1%
Makefile 0.3%