FreeBSD Bugzilla – Attachment 249177 Details for
Bug 276219
sysutils/gh-md-toc: Update to 0.9.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
gh-md-toc-0.10.0.patch
0001-sysutils-gh-md-toc-Update-to-0.10.0.patch (text/plain), 13.25 KB, created by
Jesús Daniel Colmenares Oviedo
on 2024-03-15 01:05:49 UTC
(
hide
)
Description:
gh-md-toc-0.10.0.patch
Filename:
MIME Type:
Creator:
Jesús Daniel Colmenares Oviedo
Created:
2024-03-15 01:05:49 UTC
Size:
13.25 KB
patch
obsolete
>From fc3b6a4907f633048a33ab026b6fa44211410a88 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Jes=C3=BAs=20Daniel=20Colmenares=20Oviedo?= > <DtxdF@disroot.org> >Date: Thu, 14 Mar 2024 20:51:19 -0400 >Subject: [PATCH] sysutils/gh-md-toc: Update to 0.10.0 > >ChangeLog: https://github.com/ekalinin/github-markdown-toc/releases/tag/0.10.0 > >* Update for a new GH HTML layout >--- > sysutils/gh-md-toc/Makefile | 7 +- > sysutils/gh-md-toc/distinfo | 6 +- > sysutils/gh-md-toc/files/patch-gh-md-toc | 251 ++++++++++++++++++----- > 3 files changed, 211 insertions(+), 53 deletions(-) > >diff --git a/sysutils/gh-md-toc/Makefile b/sysutils/gh-md-toc/Makefile >index 6c4ba85a795d..aa18724b6d97 100644 >--- a/sysutils/gh-md-toc/Makefile >+++ b/sysutils/gh-md-toc/Makefile >@@ -1,5 +1,5 @@ > PORTNAME= gh-md-toc >-DISTVERSION= 0.8.0 >+DISTVERSION= 0.10.0 > CATEGORIES= sysutils > > MAINTAINER= DtxdF@disroot.org >@@ -9,7 +9,8 @@ WWW= https://github.com/ekalinin/github-markdown-toc > LICENSE= MIT > LICENSE_FILE= ${WRKSRC}/LICENSE > >-RUN_DEPENDS= curl>0:ftp/curl >+RUN_DEPENDS= curl>0:ftp/curl \ >+ jq>0:textproc/jq > > USE_GITHUB= yes > GH_ACCOUNT= ekalinin >@@ -21,7 +22,7 @@ PLIST_FILES= bin/gh-md-toc > > PORTDOCS= README.md > >-OPTIONS_DEFINE= DOCS >+OPTIONS_DEFINE= DOCS > > do-install: > ${INSTALL_SCRIPT} ${WRKSRC}/gh-md-toc ${STAGEDIR}${PREFIX}/bin >diff --git a/sysutils/gh-md-toc/distinfo b/sysutils/gh-md-toc/distinfo >index 16f7fc92da8d..1ed73e90898b 100644 >--- a/sysutils/gh-md-toc/distinfo >+++ b/sysutils/gh-md-toc/distinfo >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1687043066 >-SHA256 (ekalinin-github-markdown-toc-0.8.0_GH0.tar.gz) = 7f6079026a32c03d6e7254e5921b94f6802c2d52c9d74d85a1f8015d864b58d0 >-SIZE (ekalinin-github-markdown-toc-0.8.0_GH0.tar.gz) = 10927 >+TIMESTAMP = 1710461706 >+SHA256 (ekalinin-github-markdown-toc-0.10.0_GH0.tar.gz) = d123d360b76e0ba97974cb32fb386905612d6b0ebb0a018161056062d9b44023 >+SIZE (ekalinin-github-markdown-toc-0.10.0_GH0.tar.gz) = 24032 >diff --git a/sysutils/gh-md-toc/files/patch-gh-md-toc b/sysutils/gh-md-toc/files/patch-gh-md-toc >index ac4e37045b34..c2c5213ec763 100644 >--- a/sysutils/gh-md-toc/files/patch-gh-md-toc >+++ b/sysutils/gh-md-toc/files/patch-gh-md-toc >@@ -1,4 +1,4 @@ >---- gh-md-toc.orig 2023-06-30 18:59:15 UTC >+--- gh-md-toc.orig 2024-03-03 10:54:38 UTC > +++ gh-md-toc > @@ -1,4 +1,4 @@ > -#!/usr/bin/env bash >@@ -6,22 +6,23 @@ > > # > # Steps: >-@@ -34,12 +34,10 @@ gh_user_agent="gh-md-toc v$gh_toc_version" >+@@ -34,12 +34,10 @@ gh_toc_load() { > gh_toc_load() { > local gh_url=$1 > > - if type curl &>/dev/null; then >-+ if type curl > /dev/null 2>&1; then >- curl --user-agent "$gh_user_agent" -s "$gh_url" >+- curl --user-agent "$gh_user_agent" -s "$gh_url" > - elif type wget &>/dev/null; then > - wget --user-agent="$gh_user_agent" -qO- "$gh_url" >++ if type curl > /dev/null 2>&1; then >++ curl --location --fail --user-agent "$gh_user_agent" -s "$gh_url" > else > - echo "Please, install 'curl' or 'wget' and try again." > + echo "Please, install 'curl' and try again." > exit 1 > fi > } >-@@ -56,7 +54,7 @@ gh_toc_md2html() { >+@@ -58,7 +56,7 @@ gh_toc_md2html() { > if [ ! -z "$GH_TOC_TOKEN" ]; then > TOKEN=$GH_TOC_TOKEN > else >@@ -30,65 +31,221 @@ > if [ -f "$TOKEN_FILE" ]; then > TOKEN="$(cat $TOKEN_FILE)" > fi >-@@ -124,12 +122,14 @@ gh_toc(){ >+@@ -109,6 +107,15 @@ gh_is_url() { >+ esac >+ } >+ >++gh_is_invalid_url() { >++ local gh_hostname="github.com" >++ >++ case $1 in >++ https://${gh_hostname}/* | http://${gh_hostname}/* ) return 0 ;; >++ *) return 1 ;; >++ esac >++} >++ >+ # >+ # TOC generator >+ # >+@@ -139,75 +146,112 @@ gh_toc(){ > fi > > if [ "$(gh_is_url "$gh_src")" == "yes" ]; then >-- gh_toc_load "$gh_src" | gh_toc_grab "$gh_src_copy" >+- gh_toc_load "$gh_src" | gh_toc_grab "$gh_src_copy" "$indent" > - if [ "${PIPESTATUS[0]}" != "0" ]; then >-+ local gh_content >-+ gh_content=`gh_toc_load "$gh_src"` >++ if ! which -s "jq"; then >++ echo "Please, install 'jq' and try again." >++ exit 1 >++ fi >++ >++ if ! gh_is_invalid_url "${gh_src}"; then >++ echo "It looks like an invalid URL." >++ echo "Note that valid URLs are, for example, \"https://github.com/<account>/<repo>\"." >++ exit 1 >++ fi >++ >++ local account repo >++ >++ account=$(echo -n "${gh_src}" | sed -Ee 's#https?://github\.com/([^/]+).+#\1#') >++ repo=$(echo -n "${gh_src}" | sed -Ee 's#https?://github\.com/[^/]+/([^/]+)/?.*#\1#') >++ >++ local gh_content >++ gh_content=$(gh_toc_load "${gh_src}") > + if [ $? -ne 0 ]; then > echo "Could not load remote document." > echo "Please check your url or network connectivity" > exit 1 > fi >-+ printf "%s\n" "$gh_content" | gh_toc_grab "$gh_src_copy" >++ > if [ "$need_replace" = "yes" ]; then > echo > echo "!! '$gh_src' is not a local file" >-@@ -146,7 +146,7 @@ gh_toc(){ >- if [ "$rawhtml" == "XXRateLimitXX" ]; then >- echo "Parsing local markdown file requires access to github API" >- echo "Error: You exceeded the hourly limit. See: https://developer.github.com/v3/#rate-limiting" >-- TOKEN_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/token.txt" >-+ TOKEN_FILE="$(cd "$(dirname "$0")" && pwd)/token.txt" >- echo "or place GitHub auth token here: ${TOKEN_FILE}" >- exit 1 >+ echo "!! Can't insert the TOC into it." >+ echo >++ exit 1 >+ fi >+- else >+- local rawhtml=$(gh_toc_md2html "$gh_src" "$skip_header") >+- if [ "$rawhtml" == "XXNetworkErrorXX" ]; then >+- echo "Parsing local markdown file requires access to github API" >+- echo "Please make sure curl is installed and check your network connectivity" >+- exit 1 >++ >++ local json_file >++ json_file=$(mktemp -t gh-md-toc) >++ printf "%s\n" "${gh_content}" | grep defaultBranch | sed -Ee 's#<script [^>]+>(.+)</script>#\1#' > "${json_file}" >++ >++ local refName path >++ >++ refName=$(cat "${json_file}" | jq --raw-output '.props.initialPayload.overview.overviewFiles.[] | select(.preferredFileType == "readme") | .refName' 2> /dev/null) >++ path=$(cat "${json_file}" | jq --raw-output '.props.initialPayload.overview.overviewFiles.[] | select(.preferredFileType == "readme") | .path' 2> /dev/null) >++ >++ gh_src=$(mktemp -t gh-md-toc) >++ >++ gh_content=`gh_toc_load "https://raw.githubusercontent.com/${account}/${repo}/${refName}/${path}"` >++ if [ $? -ne 0 ]; then >++ echo "Could not load remote document." >++ echo "Please check your url or network connectivity" >++ exit 1 > fi >-@@ -175,11 +175,7 @@ gh_toc(){ >- fi >+- if [ "$rawhtml" == "XXRateLimitXX" ]; then >+- echo "Parsing local markdown file requires access to github API" >+- echo "Error: You exceeded the hourly limit. See: https://developer.github.com/v3/#rate-limiting" >+- TOKEN_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/token.txt" >+- echo "or place GitHub auth token here: ${TOKEN_FILE}" >+- exit 1 >+- fi >+- local toc=`echo "$rawhtml" | gh_toc_grab "$gh_src_copy" "$indent"` >+- echo "$toc" >+- if [ "$need_replace" = "yes" ]; then >+- if grep -Fxq "<!--ts-->" "$gh_src" && grep -Fxq "<!--te-->" "$gh_src"; then >+- echo "Found markers" >+- else >+- echo "You don't have <!--ts--> or <!--te--> in your file...exiting" >+- exit 1 >+- fi >+- local ts="<\!--ts-->" >+- local te="<\!--te-->" >+- local dt=`date +'%F_%H%M%S'` >+- local ext=".orig.${dt}" >+- local toc_path="${gh_src}.toc.${dt}" >+- local toc_createdby="<!-- Created by https://github.com/ekalinin/github-markdown-toc -->" >+- local toc_footer="<!-- Added by: `whoami`, at: `date` -->" >+- # http://fahdshariff.blogspot.ru/2012/12/sed-mutli-line-replacement-between-two.html >+- # clear old TOC >+- sed -i${ext} "/${ts}/,/${te}/{//!d;}" "$gh_src" >+- # create toc file >+- echo "${toc}" > "${toc_path}" >+- if [ "${no_footer}" != "yes" ]; then >+- echo -e "\n${toc_createdby}\n${toc_footer}\n" >> "$toc_path" >+- fi > >- # insert toc file >-- if [[ "`uname`" == "Darwin" ]]; then >+- # insert toc file >+- if ! sed --version > /dev/null 2>&1; then > - sed -i "" "/${ts}/r ${toc_path}" "$gh_src" > - else > - sed -i "/${ts}/r ${toc_path}" "$gh_src" > - fi >-+ sed -i "" "/${ts}/r ${toc_path}" "$gh_src" >- echo >- if [ "${no_backup}" = "yes" ]; then >- rm ${toc_path} ${gh_src}${ext} >-@@ -296,14 +292,18 @@ gh_toc_app() { >- if [ "$1" = '--version' ]; then >- echo "$gh_toc_version" >- echo >-- echo "os: `lsb_release -d | cut -f 2`" >-- echo "kernel: `cat /proc/version`" >-- echo "shell: `$SHELL --version`" >-+ echo "os: `uname -rs`" >-+ echo "kernel: `uname -K`" >-+ echo "shell: $SHELL" >- echo >-- for tool in curl wget grep awk sed; do >-+ for tool in grep awk; do >- printf "%-5s: " $tool >- echo `$tool --version | head -n 1` >- done >-+ printf "%-5s: " sed >-+ echo "sed (BSD sed)" >-+ printf "%-5s: " fetch >-+ echo "fetch (BSD fetch)" >- return >+- echo >+- if [ "${no_backup}" = "yes" ]; then >+- rm "$toc_path" "$gh_src$ext" >+- fi >+- echo "!! TOC was added into: '$gh_src'" >+- if [ -z "${no_backup}" ]; then >+- echo "!! Origin version of the file: '${gh_src}${ext}'" >+- echo "!! TOC added into a separate file: '${toc_path}'" >++ printf "%s\n" "${gh_content}" > "${gh_src}" >++ >++ rm -f "${json_file}" >++ fi >++ >++ local rawhtml=$(gh_toc_md2html "$gh_src" "$skip_header") >++ if [ "$rawhtml" == "XXNetworkErrorXX" ]; then >++ echo "Parsing local markdown file requires access to github API" >++ echo "Please make sure curl is installed and check your network connectivity" >++ exit 1 >++ fi >++ if [ "$rawhtml" == "XXRateLimitXX" ]; then >++ echo "Parsing local markdown file requires access to github API" >++ echo "Error: You exceeded the hourly limit. See: https://developer.github.com/v3/#rate-limiting" >++ TOKEN_FILE="$(cd "$(dirname "$0}")" && pwd)/token.txt" >++ echo "or place GitHub auth token here: ${TOKEN_FILE}" >++ exit 1 >++ fi >++ local toc=`echo "$rawhtml" | gh_toc_grab "$gh_src_copy" "$indent"` >++ echo "$toc" >++ if [ "$need_replace" = "yes" ]; then >++ if grep -Fxq "<!--ts-->" "$gh_src" && grep -Fxq "<!--te-->" "$gh_src"; then >++ echo "Found markers" >++ else >++ echo "You don't have <!--ts--> or <!--te--> in your file...exiting" >++ exit 1 >+ fi >+- echo >++ local ts="<\!--ts-->" >++ local te="<\!--te-->" >++ local dt=`date +'%F_%H%M%S'` >++ local ext=".orig.${dt}" >++ local toc_path="${gh_src}.toc.${dt}" >++ local toc_createdby="<!-- Created by https://github.com/ekalinin/github-markdown-toc -->" >++ local toc_footer="<!-- Added by: `whoami`, at: `date` -->" >++ # http://fahdshariff.blogspot.ru/2012/12/sed-mutli-line-replacement-between-two.html >++ # clear old TOC >++ sed -i${ext} "/${ts}/,/${te}/{//!d;}" "$gh_src" >++ # create toc file >++ echo "${toc}" > "${toc_path}" >++ if [ "${no_footer}" != "yes" ]; then >++ echo -e "\n${toc_createdby}\n${toc_footer}\n" >> "$toc_path" >+ fi >++ >++ # insert toc file >++ sed -i "" "/${ts}/r ${toc_path}" "$gh_src" >++ echo >++ if [ "${no_backup}" = "yes" ]; then >++ rm "$toc_path" "$gh_src$ext" >++ fi >++ echo "!! TOC was added into: '$gh_src'" >++ if [ -z "${no_backup}" ]; then >++ echo "!! Origin version of the file: '${gh_src}${ext}'" >++ echo "!! TOC added into a separate file: '${toc_path}'" > fi >++ echo >++ fi >+ } >+ >+ # >+@@ -218,7 +262,6 @@ gh_toc_grab() { >+ # $2 - number of spaces used to indent. >+ # >+ gh_toc_grab() { >+- >+ href_regex="/href=\"[^\"]+?\"/" >+ common_awk_script=' >+ modified_href = "" >+@@ -298,19 +341,21 @@ show_version() { >+ show_version() { >+ echo "$gh_toc_version" >+ echo >+- echo "os: `uname -s`" >++ echo "os: `uname -rs`" >+ echo "arch: `uname -m`" >+- echo "kernel: `uname -r`" >+- echo "shell: `$SHELL --version`" >++ echo "kernel: `uname -i`" >++ echo "shell: $SHELL" >+ echo >+- for tool in curl wget grep awk sed; do >++ for tool in curl grep awk jq; do >+ printf "%-5s: " $tool >+- if `type $tool &>/dev/null`; then >++ if type $tool > /dev/null 2>&1; then >+ echo `$tool --version | head -n 1` >+ else >+ echo "not installed" >+ fi >+ done >++ printf "%-5s: " sed >++ echo "sed (BSD sed)" >+ } > >+ show_help() { >-- >2.44.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
DtxdF
:
maintainer-approval+
Actions:
View
|
Diff
Attachments on
bug 276219
:
247543
| 249177