Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 3 months ago
JSON representation

Home of the ABS programming language: the joy of shell scripting.

Awesome Lists containing this project

README

        



abs language logo



GitHub Workflow Status (branch)


License


Version

undefined
undefined


undefined
undefined
Coverage Status


undefined
undefined
undefined
undefined

# 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
fi

IP=$(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).