xaizek / dit (License: GPLv3) (since 2018-12-07)
Command-line task keeper that remembers all old values and is meant to combine several orthogonal features to be rather flexible in managing items.
<root> / scripts / export-template-pipe.bash (0ea91d8d18eb752b0c1f81b48d810ffb9e9ddc5b) (940B) (mode 100755) [raw]
#!/bin/bash

# This script receives all data item-by-item (all fields of one item followed by
# all fields of another and so on).
# Commented code shows how received data can be collected and accessed.
#
# Usage example:
# dit export - | ./export-template-pipe.bash

# This function can use $data array to process item fields as key-value pairs.
function process_item()
{
    for key in "${!data[@]}"; do
        :
        # echo "Key: $key"
        # echo "Value: ${data[$key]}"
    done

    # Display title or report its absence.
    echo "${data[title]:-<no title>}"
}

# Compose an associative array from key-value pairs.
declare -A data
while read -rd $'\0' line; do
    if [ -z "$line" ]; then
        process_item
        unset data
        declare -A data
        continue
    fi

    # echo "Line: $line"
    key="${line%%=*}"
    value="${line#*=}"
    # echo "Key: $key"
    # echo "Value: $value"

    data[$key]="$value"
done
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/dit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/dit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master