Merge pull request #122 from opencultureconsulting/121-transform-grel-expression-containing-fails

fix bug that occurs when GREL contains brackets
This commit is contained in:
Felix Lohmeier 2023-12-06 17:06:53 +01:00 committed by GitHub
commit bd7327714c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 54 additions and 6 deletions

View File

@ -1,4 +1,4 @@
# orcli 0.2.1 # orcli 0.2.2
## command help screens ## command help screens

6
orcli
View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# This script was generated by bashly 1.1.2 (https://bashly.dannyb.co) # This script was generated by bashly 1.1.3 (https://bashly.dannyb.co)
# Modifying it manually is not recommended # Modifying it manually is not recommended
# :wrapper.bash3_bouncer # :wrapper.bash3_bouncer
@ -2264,7 +2264,7 @@ orcli_transform_command() {
array[expression]="${array[expression]//$'\n'/}" array[expression]="${array[expression]//$'\n'/}"
# prepare curl options # prepare curl options
mapfile -t curloptions < <(for K in "${!array[@]}"; do mapfile -t curloptions < <(for K in "${!array[@]}"; do
echo "--data" echo "--data-urlencode"
echo "$K=${array[$K]}" echo "$K=${array[$K]}"
done) done)
# get csrf token and post data to it's individual endpoint # get csrf token and post data to it's individual endpoint
@ -4750,7 +4750,7 @@ orcli_run_parse_requirements() {
# :command.initialize # :command.initialize
initialize() { initialize() {
version="0.2.1" version="0.2.2"
long_usage='' long_usage=''
set -e set -e

View File

@ -1,6 +1,6 @@
name: orcli name: orcli
help: OpenRefine command-line interface written in Bash help: OpenRefine command-line interface written in Bash
version: 0.2.1 version: 0.2.2
footer: https://github.com/opencultureconsulting/orcli footer: https://github.com/opencultureconsulting/orcli
dependencies: dependencies:

View File

@ -88,7 +88,7 @@ for i in "${!files[@]}"; do
array[expression]="${array[expression]//$'\n'/}" array[expression]="${array[expression]//$'\n'/}"
# prepare curl options # prepare curl options
mapfile -t curloptions < <(for K in "${!array[@]}"; do mapfile -t curloptions < <(for K in "${!array[@]}"; do
echo "--data" echo "--data-urlencode"
echo "$K=${array[$K]}" echo "$K=${array[$K]}"
done) done)
# get csrf token and post data to it's individual endpoint # get csrf token and post data to it's individual endpoint

View File

@ -0,0 +1,48 @@
#!/bin/bash
t="transform-bracket"
# create tmp directory
tmpdir="$(mktemp -d)"
trap '{ rm -rf "${tmpdir}"; }' 0 2 3 15
# assertion
cat << "DATA" > "${tmpdir}/${t}.assert"
email name test state gender purchase
danny.baron@example1.com Danny Baron (Danny Baron) CA M TV
melanie.white@example2.edu Melanie White (Melanie White) NC F iPhone
danny.baron@example1.com D. Baron (D. Baron) CA M Winter jacket
ben.tyler@example3.org Ben Tyler (Ben Tyler) NV M Flashlight
arthur.duff@example4.com Arthur Duff (Arthur Duff) OR M Dining table
danny.baron@example1.com Daniel Baron (Daniel Baron) CA M Bike
jean.griffith@example5.org Jean Griffith (Jean Griffith) WA F Power drill
melanie.white@example2.edu Melanie White (Melanie White) NC F iPad
ben.morisson@example6.org Ben Morisson (Ben Morisson) FL M Amplifier
arthur.duff@example4.com Arthur Duff (Arthur Duff) OR M Night table
DATA
# transform
cat << "DATA" > "${tmpdir}/${t}.history"
[
{
"op": "core/column-addition",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"baseColumnName": "name",
"expression": "grel:forNonBlank(value, x, '(' + x + ')', null)",
"newColumnName": "test",
"columnInsertIndex": 2
}
]
DATA
# action
cd "${tmpdir}" || exit 1
orcli import csv "https://git.io/fj5hF" --projectName "duplicates"
orcli transform "duplicates" "${t}.history"
orcli export tsv "duplicates" --output "${t}.output"
# test
diff -u "${t}.assert" "${t}.output"