File: changelog_to_schelp.sh

package info (click to toggle)
supercollider 1%3A3.10.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 45,496 kB
  • sloc: cpp: 283,513; lisp: 74,040; ansic: 72,252; sh: 23,016; python: 7,175; makefile: 1,087; perl: 766; java: 677; yacc: 314; lex: 175; ruby: 136; objc: 65; xml: 15
file content (56 lines) | stat: -rw-r--r-- 1,598 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/sh
# Converts a changelog in md format to schelp format
# Usage: changelog_to_schelp.sh <input> <output> <version>
# Where <input> is in md format and <output> is in schelp
# If <version> is not provided, it will find the first match of 3.# in the file and use that
# You still have to add a related:: tag.
#
# Brian Heim, 2017-12-26

if [[ -z "$1" || -z "$2" ]]; then
    echo "Usage: changelog_to_schelp.sh <input> <output> <version>"
    echo "\t<input> must exist, <output> must not exist"
    echo "\tif <version> is not provided, this script will attempt to pull it from <input>"
    exit 1
elif [[ ! -e "$1" ]]; then
    echo "File '$1' does not exist"
    exit 1
elif [[ -e "$2" ]]; then
    echo "File '$2' exists"
    exit 1
fi

LOG=`cat "$1"`

VERSION="$3"
if [[ -z "$VERSION" ]]; then
    echo "No version provided, attempting to grab version from log"
    VERSION=`echo "$LOG" | grep -m 1 -o "[[:digit:]]\+\.[[:digit:]]\+"`
    echo "Found version: $VERSION"
fi

# header
echo "\
title:: News in $VERSION
summary:: A summary of news in SC $VERSION
categories:: News
" >> "$2"

# Section headers
LOG=`echo "$LOG" | perl -0777 -pe "s/([^\n]*)\n---*/section:: \1/igs"`

# `name` -> code::name::
LOG=`echo "$LOG" | sed "s/\\\`\([^\\\`]*\)\\\`/code:: \1 ::/g"`

# **bold** -> strong:: bold ::
LOG=`echo "$LOG" | sed "s/\*\*\([^\*]*\)\*\*/strong:: \1 ::/g"`

# turn links into plain text
LOG=`echo "$LOG" | sed "s/\[\([^]]*\)\]([^)]*)/\1/g"`

# remove parenthesized text with a # in it
LOG=`echo "$LOG" | sed "s/\s\+([0-9a-zA-Z, ]*#[#0-9a-zA-Z, ]\+)//g"`

echo "$LOG" >> "$2"

exit 0