orcli/README.md

97 lines
2.3 KiB
Markdown

# orcli (💎+🤖)
Bash script to control OpenRefine via [its HTTP API](https://docs.openrefine.org/technical-reference/openrefine-api).
## Features
* works with latest OpenRefine version (currently 3.5)
* provides nested sub-commands with help screens and usage examples
* supports batch processing (import, transform, export) with dedicated OpenRefine instances
* import CSV, TSV, line-based TXT, fixed-width TXT, JSON or XML (and specify input options)
* transform data either by directly calling operations or by providing a [undo/redo](https://docs.openrefine.org/manual/running#history-undoredo) JSON file
* export to CSV, TSV, HTML, XLS, XLSX, ODS
* [templating export](https://docs.openrefine.org/manual/exporting#templating-exporter) to additional formats like JSON or XML
## Requirements
* GNU/Linux with Bash
* [jq](https://stedolan.github.io/jq/)
* [curl](https://curl.se/)
## Install
1. Navigate to the OpenRefine program directory
2. Download bash script there and make it executable
```sh
wget https://github.com/opencultureconsulting/orcli/raw/main/orcli
chmod +x orcli
```
3. Create a symlink in your $PATH (e.g. to ~/.local/bin)
```sh
ln -s "${PWD}/orcli" ~/.local/bin/
```
## Usage
Ensure you have OpenRefine running (i.e. available at http://localhost:3333 or another URL) or use the integrated start command first.
Use integrated help screens for available options and examples for each command.
```sh
[felix@tux orcli]$ ./orcli --help
orcli - OpenRefine command-line interface written in Bash
Usage:
orcli [command]
orcli [command] --help | -h
orcli --version | -v
Commands:
info show project metadata
list list projects on OpenRefine server
Options:
--help, -h
Show this help
--version, -v
Show version number
Environment Variables:
OPENREFINE_URL
URL to OpenRefine server
Default: http://localhost:3333
OPENREFINE_CSRF
set to false for OpenRefine < 3.3
Default: true
Examples:
orcli list
orcli info clipboard
orcli info 1234567890123
```
## Development
orcli uses [bashly](https://github.com/DannyBen/bashly/) for generating the one-file script from files in the `src` directory
1. Install bashly (requires ruby)
```sh
gem install bashly
```
2. Edit code in [src](src) directory
3. Validate and generate script
```sh
bashly validate
bashly generate
```