diff --git a/Makefile b/Makefile index ff837c4..ce166c0 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +changelog: + ./bin/changelog-generator -l debug -u https://gitnet.fr/deblan/side_menu/raw/branch/master/CHANGELOG.md > docs/changelog.md + serve: docker run \ -it --rm \ diff --git a/bin/changelog-generator b/bin/changelog-generator index aac12de..cb9c586 100755 --- a/bin/changelog-generator +++ b/bin/changelog-generator @@ -32,29 +32,41 @@ on_interrupt() { } main() { - while getopts "hf:" option; do + CHANGELOG_FILE="${CHANGELOG_FILE:-}" + CHANGELOG_URL="${CHANGELOG_URL:-}" + LOG_VERBOSE="${CHANGELOG_FILE:-info}" + + while getopts "l:hf:u:" option; do case "${option}" in h) help; exit 0;; f) CHANGELOG_FILE="$OPTARG";; + u) CHANGELOG_URL="$OPTARG";; l) LOG_VERBOSE="$OPTARG";; ?) log -l error "$(usage)"; exit 1;; esac done - if [ -z "$CHANGELOG_FILE" ]; then - log -l error "The file of the changelog is required." - exit 1 - fi - - if [ ! -f "$CHANGELOG_FILE" ]; then - log -l error "No such file: $CHANGELOG_FILE" - exit 1 - fi - - temp_directory="$(mktemp -d)" + temp_directory="$(mktemp -d)" version= is_first=1 + if [ -n "$CHANGELOG_FILE" ]; then + if [ ! -f "$CHANGELOG_FILE" ]; then + log -l error "No such file: $CHANGELOG_FILE" + else + log -l info "File used: $CHANGELOG_FILE" + fi + elif [ -n "$CHANGELOG_URL" ]; then + log -l debug "URL used: $CHANGELOG_URL" + + CHANGELOG_FILE="$temp_directory/_changelog" + + curl -sS -o "$CHANGELOG_FILE" "$CHANGELOG_URL" || exit 0 + else + log -l error "You must define a file or an url" + exit 1 + fi + cat << EOF --- hide: @@ -144,7 +156,7 @@ log() { if [ $LEVEL -ge $LOG_VERBOSE_VALUE ]; then printf "%s\n" "$*" | while IFS='' read -r LINE; do - printf "%s%s%s\n" "${COLOR:-}" "${TIME:-}" "$LINE" >&2 + printf "%s%s%s%s\n" "${COLOR:-}" "${TIME:-}" "$LINE" "$(tput init)" >&2 done fi }