Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abs-lang/abs
Home of the ABS programming language: the joy of shell scripting.
https://github.com/abs-lang/abs
bash golang programming-language scripting scripting-language scripting-languages shell shell-scripting
Last synced: about 1 month ago
JSON representation
Home of the ABS programming language: the joy of shell scripting.
- Host: GitHub
- URL: https://github.com/abs-lang/abs
- Owner: abs-lang
- License: mit
- Created: 2018-12-16T08:45:08.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T01:58:15.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T01:25:55.037Z (4 months ago)
- Topics: bash, golang, programming-language, scripting, scripting-language, scripting-languages, shell, shell-scripting
- Language: Go
- Homepage: https://www.abs-lang.org
- Size: 32.9 MB
- Stars: 513
- Watchers: 14
- Forks: 35
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-repositories - abs-lang/abs - Home of the ABS programming language: the joy of shell scripting. (Go)
README
# The ABS programming language
ABS is a programming language that works best when you're scripting on
your terminal. It tries to combine the elegance of languages
such as Python, or Ruby with the convenience of Bash.``` bash
tz = `cat /etc/timezone`
continent, city = tz.split("/")echo("Best city in the world?")
selection = stdin()
if selection == city {
echo("You might be biased...")
}
```See it in action:
[![asciicast](https://asciinema.org/a/218909.svg)](https://asciinema.org/a/218909)
Let's try to fetch our IP address and print the sum of its
parts if it's higher than 100. Here's how you do it
in Bash:``` bash
# Simple program that fetches your IP and sums it up
RES=$(curl -s 'https://api.ipify.org?format=json' || "ERR")if [ "$RES" = "ERR" ]; then
echo "An error occurred"
exit 1
fiIP=$(echo $RES | jq -r ".ip")
IFS=. read first second third fourth < 100 {
echo("The sum of [$ip] is a large number, $total.")
}
```Wondering how to run this code? Grab the latest
[release](https://github.com/abs-lang/abs/releases) and run:```
$ abs script.abs
```## Installation
The easiest way is to:
``` bash
bash <(curl https://www.abs-lang.org/installer.sh)
```then you can:
``` bash
$ abs path/to/scripts.abs
```## Documentation
Visit [abs-lang.org](https://www.abs-lang.org) or check the [examples directory](https://github.com/abs-lang/abs/tree/master/examples),
which contains a few short scripts.## Contributing
Want to hack on ABS locally? The recommended development
environment is inside a Docker container — simply:* `make build` (builds the container)
* `make run` (sends you inside the development container)
* `make test` (runs the abs tests)After you make any change, run `make test` and check
if any errors pop up. If everything looks fine that means
you're ready to [open a pull request](https://github.com/abs-lang/abs/pulls)!## Status
ABS is fresh and under active development; exciting
things happen on a weekly basis!Have a look at the roadmap [here](https://github.com/abs-lang/abs/milestones):
to know of what version we're currently working on take a look at [abs-lang.org/misc/technical-details](https://www.abs-lang.org/misc/technical-details).