Merge pull request #11 from opencultureconsulting:felixlohmeier/shfmt-and-shellcheck-10

shfmt and shebang
This commit is contained in:
Felix Lohmeier 2022-03-25 23:04:26 +01:00 committed by GitHub
commit 7de612553d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 99 additions and 102 deletions

View File

@ -2,10 +2,10 @@
tasks: tasks:
- name: install bashly and OpenRefine - name: install bashly and OpenRefine
init: | init: |
gem install --silent bashly gem install --silent bashly
wget -q -O openrefine.tar.gz https://github.com/OpenRefine/OpenRefine/releases/download/3.5.2/openrefine-linux-3.5.2.tar.gz wget -q -O openrefine.tar.gz https://github.com/OpenRefine/OpenRefine/releases/download/3.5.2/openrefine-linux-3.5.2.tar.gz
tar --exclude 'licenses' --exclude 'LICENSE.txt' --exclude 'README.md' -xzf openrefine.tar.gz --strip 1 tar --exclude 'licenses' --exclude 'LICENSE.txt' --exclude 'README.md' -xzf openrefine.tar.gz --strip 1
rm openrefine.tar.gz rm openrefine.tar.gz
ports: ports:
- port: 3333 - port: 3333

71
orcli
View File

@ -186,65 +186,65 @@ inspect_args() {
# :command.user_lib # :command.user_lib
# :src/lib/error.sh # :src/lib/error.sh
#!/usr/bin/env bash
# log error message to STDERR # log error message to STDERR
function error { function error() {
echo >&2 "[$(date +'%Y-%m-%dT%H:%M:%S')]: ERROR $*" echo >&2 "[$(date +'%Y-%m-%dT%H:%M:%S')]: ERROR $*"
} }
# :src/lib/get_csrf.sh # :src/lib/get_csrf.sh
#!/usr/bin/env bash
# get CSRF token (introduced in OpenRefine 3.3) # get CSRF token (introduced in OpenRefine 3.3)
function get_csrf { function get_csrf() {
if [[ "${OPENREFINE_CSRF}" == true ]]; then if [[ "${OPENREFINE_CSRF}" == true ]]; then
local response local response
response=$(curl -fs "${OPENREFINE_URL}/command/core/get-csrf-token") response=$(curl -fs "${OPENREFINE_URL}/command/core/get-csrf-token")
if ! [[ "${response}" == '{"token":"'* ]]; then if ! [[ "${response}" == '{"token":"'* ]]; then
error "getting CSRF token failed!" error "getting CSRF token failed!"
exit 1 exit 1
fi
echo "?csrf_token=$(echo "$response" | cut -d \" -f 4)"
fi fi
echo "?csrf_token=$(echo "$response" | cut -d \" -f 4)"
fi
} }
# :src/lib/get_id.sh # :src/lib/get_id.sh
#!/usr/bin/env bash
# get project id (derived from project name if needed) # get project id (derived from project name if needed)
function get_id { function get_id() {
local response local response
local projects local projects
local ids local ids
if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then
error "no OpenRefine reachable/running at ${OPENREFINE_URL}" error "no OpenRefine reachable/running at ${OPENREFINE_URL}"
exit 1 exit 1
fi fi
if ! projects="$(echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' | grep "${args[project]}")"; then if ! projects="$(echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' | grep "${args[project]}")"; then
error "project ${args[project]} not found" error "project ${args[project]} not found"
exit 1 exit 1
fi fi
ids=$(echo "$projects" | cut -d : -f 1) ids=$(echo "$projects" | cut -d : -f 1)
if ! [[ "${#ids}" == 13 ]]; then if ! [[ "${#ids}" == 13 ]]; then
error "multiple projects found" error "multiple projects found"
echo >&2 "$projects" echo >&2 "$projects"
exit 1 exit 1
fi fi
echo "$ids" echo "$ids"
} }
# :command.command_functions # :command.command_functions
# :command.function # :command.function
orcli_info_command() { orcli_info_command() {
# :src/info_command.sh # :src/info_command.sh
echo "# this file is located in 'src/info_command.sh'" #!/usr/bin/env bash
echo "# code for 'openrefine-cli.sh info' goes here"
echo "# you can edit it freely and regenerate (it will not be overwritten)"
inspect_args
get_id get_id
} }
# :command.function # :command.function
orcli_list_command() { orcli_list_command() {
# :src/list_command.sh # :src/list_command.sh
#!/usr/bin/env bash
# get all project metadata and reshape json to print a list # get all project metadata and reshape json to print a list
if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")" if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then
then
error "no OpenRefine reachable/running at ${OPENREFINE_URL}" error "no OpenRefine reachable/running at ${OPENREFINE_URL}"
else else
echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"'
@ -432,6 +432,7 @@ initialize() {
set -e set -e
# :src/initialize.sh # :src/initialize.sh
#!/usr/bin/env bash
} }
# :command.run # :command.run

View File

@ -3,33 +3,32 @@ help: OpenRefine command-line interface written in Bash
version: 0.1.0 version: 0.1.0
dependencies: dependencies:
- curl - curl
- jq - jq
environment_variables: environment_variables:
- name: OPENREFINE_URL - name: OPENREFINE_URL
help: URL to OpenRefine server help: URL to OpenRefine server
default: "http://localhost:3333" default: "http://localhost:3333"
- name: OPENREFINE_CSRF - name: OPENREFINE_CSRF
default: "true" default: "true"
help: set to false for OpenRefine < 3.3 help: set to false for OpenRefine < 3.3
examples: examples:
- orcli list - orcli list
- orcli info clipboard - orcli info clipboard
- orcli info 1234567890123 - orcli info 1234567890123
commands: commands:
- name: info
help: show project metadata
args:
- name: project
help: project name or id
required: true
examples:
- info clipboard
- info 1234567890123
- name: info - name: list
help: show project metadata help: list projects on OpenRefine server
args:
- name: project
help: project name or id
required: true
examples:
- info clipboard
- info 1234567890123
- name: list
help: list projects on OpenRefine server

View File

@ -1,5 +1,2 @@
echo "# this file is located in 'src/info_command.sh'" #!/usr/bin/env bash
echo "# code for 'openrefine-cli.sh info' goes here"
echo "# you can edit it freely and regenerate (it will not be overwritten)"
inspect_args
get_id get_id

View File

@ -1,6 +1,3 @@
#!/usr/bin/env bash
## Code here runs inside the initialize() function ## Code here runs inside the initialize() function
## Use it for anything that you need to run before any other function, like ## Use it for anything that you need to run before any other function
## setting environment vairables:
## CONFIG_FILE=settings.ini
##
## Feel free to empty (but not delete) this file.

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash
# log error message to STDERR # log error message to STDERR
function error { function error() {
echo >&2 "[$(date +'%Y-%m-%dT%H:%M:%S')]: ERROR $*" echo >&2 "[$(date +'%Y-%m-%dT%H:%M:%S')]: ERROR $*"
} }

View File

@ -1,12 +1,13 @@
#!/usr/bin/env bash
# get CSRF token (introduced in OpenRefine 3.3) # get CSRF token (introduced in OpenRefine 3.3)
function get_csrf { function get_csrf() {
if [[ "${OPENREFINE_CSRF}" == true ]]; then if [[ "${OPENREFINE_CSRF}" == true ]]; then
local response local response
response=$(curl -fs "${OPENREFINE_URL}/command/core/get-csrf-token") response=$(curl -fs "${OPENREFINE_URL}/command/core/get-csrf-token")
if ! [[ "${response}" == '{"token":"'* ]]; then if ! [[ "${response}" == '{"token":"'* ]]; then
error "getting CSRF token failed!" error "getting CSRF token failed!"
exit 1 exit 1
fi
echo "?csrf_token=$(echo "$response" | cut -d \" -f 4)"
fi fi
echo "?csrf_token=$(echo "$response" | cut -d \" -f 4)"
fi
} }

View File

@ -1,21 +1,22 @@
#!/usr/bin/env bash
# get project id (derived from project name if needed) # get project id (derived from project name if needed)
function get_id { function get_id() {
local response local response
local projects local projects
local ids local ids
if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then
error "no OpenRefine reachable/running at ${OPENREFINE_URL}" error "no OpenRefine reachable/running at ${OPENREFINE_URL}"
exit 1 exit 1
fi fi
if ! projects="$(echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' | grep "${args[project]}")"; then if ! projects="$(echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' | grep "${args[project]}")"; then
error "project ${args[project]} not found" error "project ${args[project]} not found"
exit 1 exit 1
fi fi
ids=$(echo "$projects" | cut -d : -f 1) ids=$(echo "$projects" | cut -d : -f 1)
if ! [[ "${#ids}" == 13 ]]; then if ! [[ "${#ids}" == 13 ]]; then
error "multiple projects found" error "multiple projects found"
echo >&2 "$projects" echo >&2 "$projects"
exit 1 exit 1
fi fi
echo "$ids" echo "$ids"
} }

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# get all project metadata and reshape json to print a list # get all project metadata and reshape json to print a list
if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")" if ! response="$(curl -fs --get "${OPENREFINE_URL}/command/core/get-all-project-metadata")"; then
then
error "no OpenRefine reachable/running at ${OPENREFINE_URL}" error "no OpenRefine reachable/running at ${OPENREFINE_URL}"
else else
echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"' echo "$response" | jq -r '.projects | keys[] as $k | "\($k):\(.[$k] | .name)"'