public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Brian Evans" <grknight@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/devmanual:master commit in: /, bin/
Date: Fri, 22 Mar 2019 13:27:25 +0000 (UTC)	[thread overview]
Message-ID: <1553260756.d541c4c23305121c02ed18668b6019e86cfc2404.grknight@gentoo> (raw)

commit:     d541c4c23305121c02ed18668b6019e86cfc2404
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 22 13:19:16 2019 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Fri Mar 22 13:19:16 2019 +0000
URL:        https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=d541c4c2

Create script for eclass-reference

This was previously held in infra but contains no identifying information

Bug: https://bugs.gentoo.org/536654
Signed-off-by: Brian Evans <grknight <AT> gentoo.org>

 .gitignore             |   1 +
 bin/gen-eclass-html.sh | 135 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 136 insertions(+)

diff --git a/.gitignore b/.gitignore
index b364f07..720d4d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 *.html
 *.png
+eclass-reference/

diff --git a/bin/gen-eclass-html.sh b/bin/gen-eclass-html.sh
new file mode 100755
index 0000000..e87f60f
--- /dev/null
+++ b/bin/gen-eclass-html.sh
@@ -0,0 +1,135 @@
+#!/bin/bash
+
+# pre1) OOB: The host needs to emerge eclass-manpages on a daily basis.
+# This script should be run before the make operation is performed
+
+OUTPUTDIR="eclass-reference"
+
+IFS='' read -r -d '' FOOTER << 'EOF'
+</div>
+<footer><div class="container">
+<div class="row">
+<div class="col-xs-12 col-md-offset-2 col-md-7"></div>
+<div class="col-xs-12 col-md-3">
+<h3 class="footerhead">Questions or comments?</h3>
+              Please feel free to <a href="https://www.gentoo.org/inside-gentoo/contact/">contact us</a>.
+            </div>
+</div>
+<div class="row">
+<div class="col-xs-2 col-sm-3 col-md-2"><ul class="footerlinks three-icons">
+<li><a href="http://twitter.com/gentoo" title="@Gentoo on Twitter"><span class="fa fa-twitter fa-fw"></span></a></li>
+<li><a href="https://plus.google.com/+Gentoo" title="+Gentoo on Google+"><span class="fa fa-google-plus fa-fw"></span></a></li>
+<li><a href="https://www.facebook.com/gentoo.org" title="Gentoo on Facebook"><span class="fa fa-facebook fa-fw"></span></a></li>
+</ul></div>
+<div class="col-xs-10 col-sm-9 col-md-10">
+<strong>Copyright (C) 2001-2019 Gentoo Foundation, Inc.</strong><br><small>
+                Gentoo is a trademark of the Gentoo Foundation, Inc.
+                The text of this document is distributed under the
+                <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
+                The <a href="https://www.gentoo.org/inside-gentoo/foundation/name-logo-guidelines.html">Gentoo Name and Logo Usage Guidelines</a> apply.
+              </small>
+</div>
+</div>
+</div></footer><script src="https://assets.gentoo.org/tyrian/jquery.min.js"></script><script src="https://assets.gentoo.org/tyrian/bootstrap.min.js"></script>
+</body>
+</html>
+EOF
+
+# We also need the ebuild man page
+for i in $(/usr/bin/qlist eclass-manpages) /usr/share/man/man5/ebuild.5.bz2; do
+	BASENAME="$(basename $i .5.bz2)"
+	DIRNAME="${OUTPUTDIR}/${BASENAME}"
+	TMP="${DIRNAME}/index.html.tmp"
+	FINAL="${DIRNAME}/index.html"
+	[[ -d ${DIRNAME} ]] || mkdir -p ${DIRNAME}
+	# rebuild the man page each time
+	cat << EOF > ${FINAL}
+<!DOCTYPE html><html lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<title>Gentoo Development Guide: $BASENAME</title>
+	<link rel="stylesheet" href="../../devmanual.css" type="text/css">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<meta name="description" content="The Gentoo Devmanual is a technical manual which covers topics such as writing ebuilds and eclasses, and policies that developers should be abiding by.">
+	<link href="https://assets.gentoo.org/tyrian/bootstrap.min.css" rel="stylesheet" media="screen">
+	<link href="https://assets.gentoo.org/tyrian/tyrian.min.css" rel="stylesheet" media="screen">
+	<link rel="icon" href="https://www.gentoo.org/favicon.ico" type="image/x-icon">
+</head>
+<body>
+<header><div class="site-title"><div class="container"><div class="row">
+<div class="site-title-buttons"><div class="btn-group btn-group-sm">
+<a href="https://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-fw fa-download"></span><strong> Get Gentoo!</strong></a><div class="btn-group btn-group-sm">
+<a class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown" data-target="#" href="#"><span class="fa fa-fw fa-map-o"></span><span class="hidden-xs"> gentoo.org sites </span><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-right">
+<li><a href="https://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span> gentoo.org</a></li>
+<li><a href="https://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text-o fa-fw"></span> Wiki</a></li>
+<li><a href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span> Bugs</a></li>
+<li><a href="https://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span> Forums</a></li>
+<li><a href="https://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span> Packages</a></li>
+<li class="divider">
+<li><a href="https://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span> Planet</a></li>
+<li><a href="https://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span> Archives</a></li>
+<li><a href="https://sources.gentoo.org/" title="Browse our source code"><span class="fa fa-code fa-fw"></span> Sources</a></li>
+<li class="divider">
+<li><a href="https://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-server fa-fw"></span> Infra Status</a></li>
+</ul>
+</div>
+</div></div>
+<div class="logo">
+<a href="/" title="Back to the homepage" class="site-logo"><object data="https://assets.gentoo.org/tyrian/site-logo.svg" type="image/svg+xml"><img src="https://assets.gentoo.org/tyrian/site-logo.png" alt="Gentoo Linux Logo"></object></a><span class="site-label">Development Guide</span>
+</div>
+</div></div></div>
+<nav class="tyrian-navbar" role="navigation"><div class="container"><div class="row">
+<div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+<div class="collapse navbar-collapse navbar-main-collapse"><ul class="nav navbar-nav">
+<li><a href="/index.html"><i class="fa fa-home"></i>  Home</a></li>
+<li><a href="../index.html"><i class="fa fa-arrow-up"></i>  Eclass Reference</a></li>
+</ul></div>
+</div></div></nav></header><div class="container"><div class="row"><div class="col-md010"><ol class="breadcrumb"><li><a href="/index.html">Master Index</a></li><li><a href="../index.html">Eclass Reference</a></li></ol></div></div></div>
+	<div class="container">
+EOF
+    # generate html pages and fix hyperlinks for eclass and ebuild man pages
+    /bin/bunzip2 -c $i | /usr/bin/man2html -r - | \
+    sed -e "/<A HREF=/s:=.*man.*/\(.*eclass\).*html\">:=../\1/index.html>:" \
+    -e "/<\/BODY>/d" -e "/<\/HTML>/d"  \
+    -e "/<A HREF=/s:=.*man.*/\(.*ebuild\).*html\">:=../\1/\index.html>:" >> ${TMP}
+	# The first 4 lines are cruft for devmanual
+	tail -n $(($(wc -l ${TMP} | awk '{print $1}') - 4)) ${TMP} >> ${FINAL}
+	rm -f ${TMP}
+	echo "${FOOTER}" >> ${FINAL}
+done
+
+# Remove old dirs (eclasses that were dropped from the tree)
+find $OUTPUTDIR -mindepth 1 -maxdepth 1 -mtime +1 -exec rm -R {} \;
+
+# build the index, rebuilding it each time
+cat << EOF > $OUTPUTDIR/text.xml
+<?xml version="1.0"?>
+<guide self="eclass-reference/">
+<chapter>
+<title>Eclass Reference</title>
+
+<body>
+<p>
+This section provides a reference for some of the more commonly used eclasses.
+Note that most eclasses have an accompanying manual page. These man pages can be
+installed by emerging <code class="docutils literal"><span class="pre">app-portage/eclass-manpages</span></code>.
+</p>
+</body>
+
+<section>
+<title>Contents</title>
+<body>
+<ul>
+EOF
+
+for i in $(find $OUTPUTDIR/ -maxdepth 1 -mindepth 1 -type d | sort); do
+	echo "<li><uri link=\"::eclass-reference/$(basename $i)/index.html\">$(basename $i) Reference</uri></li>" >> ${OUTPUTDIR}/text.xml
+done
+
+cat << EOF >> ${OUTPUTDIR}/text.xml
+
+</ul></body>
+</section>
+</chapter>
+</guide>
+EOF


             reply	other threads:[~2019-03-22 13:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-22 13:27 Brian Evans [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-03-22 18:51 [gentoo-commits] proj/devmanual:master commit in: /, bin/ Brian Evans
2019-12-14 10:46 Ulrich Müller
2019-12-16  6:45 Ulrich Müller
2019-12-19 21:02 Göktürk Yüksek
2020-01-22 18:24 Ulrich Müller
2020-02-28  6:26 Ulrich Müller
2022-03-26 19:12 Ulrich Müller
2023-10-05 19:00 Ulrich Müller
2024-10-29 11:19 Ulrich Müller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1553260756.d541c4c23305121c02ed18668b6019e86cfc2404.grknight@gentoo \
    --to=grknight@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox