feat(blogv): Add blogv
Add blogv the dumb build log viewer to the repo NOTE: I also remove the extraneous readme.html that accidentally got committed
This commit is contained in:
parent
8285e62178
commit
f4a84d9358
215
Readme.html
215
Readme.html
|
|
@ -1,215 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="generator" content="pandoc" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
||||||
<title>Readme</title>
|
|
||||||
<style>
|
|
||||||
html {
|
|
||||||
color: #1a1a1a;
|
|
||||||
background-color: #fdfdfd;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 36em;
|
|
||||||
padding-left: 50px;
|
|
||||||
padding-right: 50px;
|
|
||||||
padding-top: 50px;
|
|
||||||
padding-bottom: 50px;
|
|
||||||
hyphens: auto;
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
text-rendering: optimizeLegibility;
|
|
||||||
font-kerning: normal;
|
|
||||||
}
|
|
||||||
@media (max-width: 600px) {
|
|
||||||
body {
|
|
||||||
font-size: 0.9em;
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 1.8em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media print {
|
|
||||||
html {
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
background-color: transparent;
|
|
||||||
color: black;
|
|
||||||
font-size: 12pt;
|
|
||||||
}
|
|
||||||
p, h2, h3 {
|
|
||||||
orphans: 3;
|
|
||||||
widows: 3;
|
|
||||||
}
|
|
||||||
h2, h3, h4 {
|
|
||||||
page-break-after: avoid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #1a1a1a;
|
|
||||||
}
|
|
||||||
a:visited {
|
|
||||||
color: #1a1a1a;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
svg {
|
|
||||||
height: auto;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
margin-top: 1.4em;
|
|
||||||
}
|
|
||||||
h5, h6 {
|
|
||||||
font-size: 1em;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
h6 {
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
ol, ul {
|
|
||||||
padding-left: 1.7em;
|
|
||||||
margin-top: 1em;
|
|
||||||
}
|
|
||||||
li > ol, li > ul {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
blockquote {
|
|
||||||
margin: 1em 0 1em 1.7em;
|
|
||||||
padding-left: 1em;
|
|
||||||
border-left: 2px solid #e6e6e6;
|
|
||||||
color: #606060;
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
|
|
||||||
font-size: 85%;
|
|
||||||
margin: 0;
|
|
||||||
hyphens: manual;
|
|
||||||
}
|
|
||||||
pre {
|
|
||||||
margin: 1em 0;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
pre code {
|
|
||||||
padding: 0;
|
|
||||||
overflow: visible;
|
|
||||||
overflow-wrap: normal;
|
|
||||||
}
|
|
||||||
.sourceCode {
|
|
||||||
background-color: transparent;
|
|
||||||
overflow: visible;
|
|
||||||
}
|
|
||||||
hr {
|
|
||||||
background-color: #1a1a1a;
|
|
||||||
border: none;
|
|
||||||
height: 1px;
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
margin: 1em 0;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
overflow-x: auto;
|
|
||||||
display: block;
|
|
||||||
font-variant-numeric: lining-nums tabular-nums;
|
|
||||||
}
|
|
||||||
table caption {
|
|
||||||
margin-bottom: 0.75em;
|
|
||||||
}
|
|
||||||
tbody {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
border-top: 1px solid #1a1a1a;
|
|
||||||
border-bottom: 1px solid #1a1a1a;
|
|
||||||
}
|
|
||||||
th {
|
|
||||||
border-top: 1px solid #1a1a1a;
|
|
||||||
padding: 0.25em 0.5em 0.25em 0.5em;
|
|
||||||
}
|
|
||||||
td {
|
|
||||||
padding: 0.125em 0.5em 0.25em 0.5em;
|
|
||||||
}
|
|
||||||
header {
|
|
||||||
margin-bottom: 4em;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
#TOC li {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
#TOC ul {
|
|
||||||
padding-left: 1.3em;
|
|
||||||
}
|
|
||||||
#TOC > ul {
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
#TOC a:not(:hover) {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
code{white-space: pre-wrap;}
|
|
||||||
span.smallcaps{font-variant: small-caps;}
|
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
|
||||||
override a similar rule in reveal.js */
|
|
||||||
ul.task-list[class]{list-style: none;}
|
|
||||||
ul.task-list li input[type="checkbox"] {
|
|
||||||
font-size: inherit;
|
|
||||||
width: 0.8em;
|
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1 id="gscripts">GScripts</h1>
|
|
||||||
<p>A set of scripts which I use in my current Gentoo system, all are
|
|
||||||
installed through portage and of course are tested to work on my system
|
|
||||||
and my system alone. Where possible I only use dependencies available in
|
|
||||||
the main Gentoo repo and each script has the dependencies listed.</p>
|
|
||||||
<p>All scripts are licensed under the MIT (Expat) License (for more
|
|
||||||
information on why I give two names for one license please see <a
|
|
||||||
href="https://www.gnu.org/licenses/license-list.en.html#Expat">what the
|
|
||||||
GNU project has to say on the matter</a>) I intentionally use the term
|
|
||||||
MIT license as that is the accepted SPDX license identifier.</p>
|
|
||||||
<p><em>Coming Eventually:</em> A portage repo that contains my ebuilds
|
|
||||||
(where I am certain of the accuracy of the license data).</p>
|
|
||||||
<p>Where scripts have configuration all environment variables are
|
|
||||||
pseudo-namespaced by <code>$GScripts_<OPTION></code></p>
|
|
||||||
<h2 id="the-scripts">The Scripts</h2>
|
|
||||||
<h3 id="wallchooser">WallChooser</h3>
|
|
||||||
<p>A simple script that lets you pick a new wallpaper, it automatically
|
|
||||||
runs all the required steps to generate a new <code>pywal</code> theme
|
|
||||||
and set the wallpaper using <code>swww</code></p>
|
|
||||||
<h4 id="requirements">Requirements</h4>
|
|
||||||
<ul>
|
|
||||||
<li><code>fzf</code></li>
|
|
||||||
<li><code>swww</code></li>
|
|
||||||
<li><code>wal</code></li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="barrunner">BarRunner</h3>
|
|
||||||
<p>A tool to run <code>waybar</code>, Automatically restarting the bar
|
|
||||||
if any of the required config files are changed. NOTE: This tool is very
|
|
||||||
much designed around my system and will likely fail to operate properly
|
|
||||||
for you. It is designed with special handling for different compositors.
|
|
||||||
And compatibility with <code>pywal</code></p>
|
|
||||||
<h4 id="arguments">Arguments</h4>
|
|
||||||
<ul>
|
|
||||||
<li><code>$1</code> The name of the compositor</li>
|
|
||||||
<li><code>$2</code> Use <code>pywal</code>? (y|Y|yes triggers pywal
|
|
||||||
support)</li>
|
|
||||||
</ul>
|
|
||||||
<h4 id="requirements-1">Requirements</h4>
|
|
||||||
<ul>
|
|
||||||
<li><code>waybar</code></li>
|
|
||||||
<li><code>inotifywait</code></li>
|
|
||||||
</ul>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
22
Readme.md
22
Readme.md
|
|
@ -47,3 +47,25 @@ compatibility with `pywal`
|
||||||
#### Requirements
|
#### Requirements
|
||||||
- `waybar`
|
- `waybar`
|
||||||
- `inotifywait`
|
- `inotifywait`
|
||||||
|
|
||||||
|
### blogv
|
||||||
|
A simple and naive script to read build log entries.
|
||||||
|
Really just a bunch of pipes in a shellscript file so it has a name.
|
||||||
|
Heavily depends on portage build logs being done in a specific way
|
||||||
|
```bash
|
||||||
|
## Portage logging
|
||||||
|
PORTAGE_ELOG_CLASSES="info warn error log qa"
|
||||||
|
PORTAGE_ELOG_SYSTEM="echo save"
|
||||||
|
PORTAGE_LOGDIR="/var/log/portage"
|
||||||
|
PORTAGE_LOG_FILTER_FILE_CMD="bash -c \"ansifilter; exec cat\""
|
||||||
|
PORTAGE_LOGDIR_CLEAN="find "${PORTAGE_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete"
|
||||||
|
## Change some features
|
||||||
|
FEATURES="clean-logs \
|
||||||
|
split-elog \
|
||||||
|
split-log "
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Requirements
|
||||||
|
- `fzf`
|
||||||
|
- `xargs`
|
||||||
|
- `bat`
|
||||||
|
|
|
||||||
20
blogv
Executable file
20
blogv
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# +SPDX:MIT
|
||||||
|
# A dumb portage build log viewer
|
||||||
|
# Currently relies on logging being done in a specific way.
|
||||||
|
# all arguments are sent to bat
|
||||||
|
|
||||||
|
## WE NEED SOME DEPENDENCIES
|
||||||
|
depcheck() {
|
||||||
|
if ! command -v "$1" &> /dev/null ; then
|
||||||
|
echo "Missing dependency $1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
depcheck fzf
|
||||||
|
depcheck bat
|
||||||
|
depcheck xargs
|
||||||
|
|
||||||
|
# in true unix style this is just a long pipe of pipes
|
||||||
|
# shellcheck disable=2068
|
||||||
|
find /var/log/portage/build -type f -iname "*.log" | sed -e 's|/var/log/portage/build/||' -e 's/:.*//' | sort | uniq | fzf | xargs --no-run-if-empty --replace={} find /var/log/portage/build -iwholename "*{}*" | sort | xargs bat ${@}
|
||||||
Loading…
Reference in New Issue
Block a user