#shellscripting — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #shellscripting, aggregated by home.social.
-
This is old news to anyone with actual command-line skills, but it saved me today when doing a Blender render that kept crashing. I normally render from the command line because it means I can keep posting toots, er, I mean working productively for my employer in the foreground while it's rendering, and because it's usually faster (especially if you can run multiple instances).
Since I set up my scene to render an image sequence with overwriting turned off I can restart the render each time and pick up where it left off. But because command line, I can automate that process. In zsh (it will probably work on Bash or other shells I dunno) I do:
`blender -b '/path/to/my/project.blend' -a; while [[ $? != 0 ]]; do; echo "!!!! Oh bollocks !!!!"; blender -b '/path/to/my/project.blend' -a; done`
The guts of it is the `while` loop. This will loop as long as `$?` is not equal to 0. `$?` is a variable that holds the result of the previous operation, which is 0 if the previous operation succeeds. So if blender crashes it returns some non-zero return code, and the loop starts it up again.
For info on rendering from the command line: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
#blender #ShellScripting #CommandLine---EDIT----
Check the replies for a more terse and elegant way to do this.
Also, here's a screenie of it in action, you can see it crashing and then starting again. This is on OSX so there's a dialog box that pops up, luckily the shell ignores the user's rsponse and continues anyway.
1/2 -
This is old news to anyone with actual command-line skills, but it saved me today when doing a Blender render that kept crashing. I normally render from the command line because it means I can keep posting toots, er, I mean working productively for my employer in the foreground while it's rendering, and because it's usually faster (especially if you can run multiple instances).
Since I set up my scene to render an image sequence with overwriting turned off I can restart the render each time and pick up where it left off. But because command line, I can automate that process. In zsh (it will probably work on Bash or other shells I dunno) I do:
`blender -b '/path/to/my/project.blend' -a; while [[ $? != 0 ]]; do; echo "!!!! Oh bollocks !!!!"; blender -b '/path/to/my/project.blend' -a; done`
The guts of it is the `while` loop. This will loop as long as `$?` is not equal to 0. `$?` is a variable that holds the result of the previous operation, which is 0 if the previous operation succeeds. So if blender crashes it returns some non-zero return code, and the loop starts it up again.
For info on rendering from the command line: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
#blender #ShellScripting #CommandLine---EDIT----
Check the replies for a more terse and elegant way to do this.
Also, here's a screenie of it in action, you can see it crashing and then starting again. This is on OSX so there's a dialog box that pops up, luckily the shell ignores the user's rsponse and continues anyway.
1/2 -
This is old news to anyone with actual command-line skills, but it saved me today when doing a Blender render that kept crashing. I normally render from the command line because it means I can keep posting toots, er, I mean working productively for my employer in the foreground while it's rendering, and because it's usually faster (especially if you can run multiple instances).
Since I set up my scene to render an image sequence with overwriting turned off I can restart the render each time and pick up where it left off. But because command line, I can automate that process. In zsh (it will probably work on Bash or other shells I dunno) I do:
`blender -b '/path/to/my/project.blend' -a; while [[ $? != 0 ]]; do; echo "!!!! Oh bollocks !!!!"; blender -b '/path/to/my/project.blend' -a; done`
The guts of it is the `while` loop. This will loop as long as `$?` is not equal to 0. `$?` is a variable that holds the result of the previous operation, which is 0 if the previous operation succeeds. So if blender crashes it returns some non-zero return code, and the loop starts it up again.
For info on rendering from the command line: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
#blender #ShellScripting #CommandLine---EDIT----
Check the replies for a more terse and elegant way to do this.
Also, here's a screenie of it in action, you can see it crashing and then starting again. This is on OSX so there's a dialog box that pops up, luckily the shell ignores the user's rsponse and continues anyway.
1/2 -
This is old news to anyone with actual command-line skills, but it saved me today when doing a Blender render that kept crashing. I normally render from the command line because it means I can keep posting toots, er, I mean working productively for my employer in the foreground while it's rendering, and because it's usually faster (especially if you can run multiple instances).
Since I set up my scene to render an image sequence with overwriting turned off I can restart the render each time and pick up where it left off. But because command line, I can automate that process. In zsh (it will probably work on Bash or other shells I dunno) I do:
`blender -b '/path/to/my/project.blend' -a; while [[ $? != 0 ]]; do; echo "!!!! Oh bollocks !!!!"; blender -b '/path/to/my/project.blend' -a; done`
The guts of it is the `while` loop. This will loop as long as `$?` is not equal to 0. `$?` is a variable that holds the result of the previous operation, which is 0 if the previous operation succeeds. So if blender crashes it returns some non-zero return code, and the loop starts it up again.
For info on rendering from the command line: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
#blender #ShellScripting #CommandLine---EDIT----
Check the replies for a more terse and elegant way to do this.
Also, here's a screenie of it in action, you can see it crashing and then starting again. This is on OSX so there's a dialog box that pops up, luckily the shell ignores the user's rsponse and continues anyway.
1/2 -
This is old news to anyone with actual command-line skills, but it saved me today when doing a Blender render that kept crashing. I normally render from the command line because it means I can keep posting toots, er, I mean working productively for my employer in the foreground while it's rendering, and because it's usually faster (especially if you can run multiple instances).
Since I set up my scene to render an image sequence with overwriting turned off I can restart the render each time and pick up where it left off. But because command line, I can automate that process. In zsh (it will probably work on Bash or other shells I dunno) I do:
`blender -b '/path/to/my/project.blend' -a; while [[ $? != 0 ]]; do; echo "!!!! Oh bollocks !!!!"; blender -b '/path/to/my/project.blend' -a; done`
The guts of it is the `while` loop. This will loop as long as `$?` is not equal to 0. `$?` is a variable that holds the result of the previous operation, which is 0 if the previous operation succeeds. So if blender crashes it returns some non-zero return code, and the loop starts it up again.
For info on rendering from the command line: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
#blender #ShellScripting #CommandLine---EDIT----
Check the replies for a more terse and elegant way to do this.
Also, here's a screenie of it in action, you can see it crashing and then starting again. This is on OSX so there's a dialog box that pops up, luckily the shell ignores the user's rsponse and continues anyway.
1/2 -
Day 2/60 #BashSecurity -- Variables and types
Bash's "type system" is: everything is a string. This causes real security issues.
```bash
# This is an injection vulnerability:
user_in="file.txt; cat /etc/shadow"
grep $user_in /var/log/auth.log# This is safe:
grep "$user_in" /var/log/auth.log
```Other gotchas:
- `declare -i num=5; num="abc"` silently sets num to 0
- `export SECRET` makes it readable via /proc/self/environ
- `readonly CFG=/etc/app` prevents runtime tampering
- `x = 5` (with spaces) runs x as a command, not assignmentQuote every expansion. Validate every input. Trust nothing.
-
Test TCP Connectivity With Bash
#shellscripting #bash #network
https://sketchesfromahomelab.com/articles/2026/03/01/Test_TCP_Connectivity_With_Bash/ -
Test TCP Connectivity With Bash
#shellscripting #bash #network
https://sketchesfromahomelab.com/articles/2026/03/01/Test_TCP_Connectivity_With_Bash/ -
Test TCP Connectivity With Bash
#shellscripting #bash #network
https://sketchesfromahomelab.com/articles/2026/03/01/Test_TCP_Connectivity_With_Bash/ -
Wrote a #shell function without using
lsinside of$( ), so my inner @mirabilos won't harass me. XD#slightly easier wireguard command function wg { local dir file profile profiledir= parm=${1:-} statustext #Find profile dir for dir in {,/usr/local}/etc/wireguard; do if [[ -d $dir ]]; then profiledir=$dir break fi done #Find config file if [[ -n $profiledir ]]; then for file in $profiledir/*.conf; do if [[ -e $file ]]; then profile=${file//*\/} profile=${profile/.conf} break fi done fi [[ -n $profile ]] || profile=proton statustext="wireguard profile $profile" case ${parm,,} in up|on) doas wg-quick up $profile;; down|off) doas wg-quick down $profile;; status) echo -en "$statustext _______\r" echo -en "$statustext " ifconfig |grep -q "^$profile:" && echo enabled || echo disabled;; *) warn "wg usage: wg up|down|status";; esac }Hmm, seems
${foo,,}for lower case conversion is #bash-only. I wonder if I should usetrinstead. -
Wrote a #shell function without using
lsinside of$( ), so my inner @mirabilos won't harass me. XD#slightly easier wireguard command function wg { local dir file profile profiledir= parm=${1:-} statustext #Find profile dir for dir in {,/usr/local}/etc/wireguard; do if [[ -d $dir ]]; then profiledir=$dir break fi done #Find config file if [[ -n $profiledir ]]; then for file in $profiledir/*.conf; do if [[ -e $file ]]; then profile=${file//*\/} profile=${profile/.conf} break fi done fi [[ -n $profile ]] || profile=proton statustext="wireguard profile $profile" case ${parm,,} in up|on) doas wg-quick up $profile;; down|off) doas wg-quick down $profile;; status) echo -en "$statustext _______\r" echo -en "$statustext " ifconfig |grep -q "^$profile:" && echo enabled || echo disabled;; *) warn "wg usage: wg up|down|status";; esac }Hmm, seems
${foo,,}for lower case conversion is #bash-only. I wonder if I should usetrinstead. -
Wrote a #shell function without using
lsinside of$( ), so my inner @mirabilos won't harass me. XD#slightly easier wireguard command function wg { local dir file profile profiledir= parm=${1:-} statustext #Find profile dir for dir in {,/usr/local}/etc/wireguard; do if [[ -d $dir ]]; then profiledir=$dir break fi done #Find config file if [[ -n $profiledir ]]; then for file in $profiledir/*.conf; do if [[ -e $file ]]; then profile=${file//*\/} profile=${profile/.conf} break fi done fi [[ -n $profile ]] || profile=proton statustext="wireguard profile $profile" case ${parm,,} in up|on) doas wg-quick up $profile;; down|off) doas wg-quick down $profile;; status) echo -en "$statustext _______\r" echo -en "$statustext " ifconfig |grep -q "^$profile:" && echo enabled || echo disabled;; *) warn "wg usage: wg up|down|status";; esac }Hmm, seems
${foo,,}for lower case conversion is #bash-only. I wonder if I should usetrinstead. -
Wrote a #shell function without using
lsinside of$( ), so my inner @mirabilos won't harass me. XD#slightly easier wireguard command function wg { local dir file profile profiledir= parm=${1:-} statustext #Find profile dir for dir in {,/usr/local}/etc/wireguard; do if [[ -d $dir ]]; then profiledir=$dir break fi done #Find config file if [[ -n $profiledir ]]; then for file in $profiledir/*.conf; do if [[ -e $file ]]; then profile=${file//*\/} profile=${profile/.conf} break fi done fi [[ -n $profile ]] || profile=proton statustext="wireguard profile $profile" case ${parm,,} in up|on) doas wg-quick up $profile;; down|off) doas wg-quick down $profile;; status) echo -en "$statustext _______\r" echo -en "$statustext " ifconfig |grep -q "^$profile:" && echo enabled || echo disabled;; *) warn "wg usage: wg up|down|status";; esac }Hmm, seems
${foo,,}for lower case conversion is #bash-only. I wonder if I should usetrinstead. -
Wrote a #shell function without using
lsinside of$( ), so my inner @mirabilos won't harass me. XD#slightly easier wireguard command function wg { local dir file profile profiledir= parm=${1:-} statustext #Find profile dir for dir in {,/usr/local}/etc/wireguard; do if [[ -d $dir ]]; then profiledir=$dir break fi done #Find config file if [[ -n $profiledir ]]; then for file in $profiledir/*.conf; do if [[ -e $file ]]; then profile=${file//*\/} profile=${profile/.conf} break fi done fi [[ -n $profile ]] || profile=proton statustext="wireguard profile $profile" case ${parm,,} in up|on) doas wg-quick up $profile;; down|off) doas wg-quick down $profile;; status) echo -en "$statustext _______\r" echo -en "$statustext " ifconfig |grep -q "^$profile:" && echo enabled || echo disabled;; *) warn "wg usage: wg up|down|status";; esac }Hmm, seems
${foo,,}for lower case conversion is #bash-only. I wonder if I should usetrinstead. -
Zsh: select generated files with (om[1]) glob qualifiers - Adam Johnson
https://adamj.eu/tech/2026/01/27/zsh-om1-glob-qualifiers/ -
Zsh: select generated files with (om[1]) glob qualifiers - Adam Johnson
https://adamj.eu/tech/2026/01/27/zsh-om1-glob-qualifiers/ -
@heinelo das kann ich gut nachvollziehen, allerdings würde ich auch ins Feld führen, daß #macos im Kern auch ein linuixes System ist und von daher so genutzt werden kann.
In der graphischen Industrie sind #adobe Produkte einfach nicht weg zu denken. Deswegen verwende ich meine #mac Rechner eher wie #opensource Plattformen. Installationen werden mit #shellscripting erledigt und Programme mit #homebrew installiert.
Ich verwende keine AppleIDs, eigene Clouds, Aressbücher, Kalender und einen eigenen Mailserver bei Kunden und bei mir selbst.
So finde ich ist ein #macos ein unabhängiges System, welches auch keinem #killswitch ausgesetzt sein wird, denn sollte sich Apple dazu entscheiden keine Updates mehr zu liefern – was ich nicht glaube – dann installiere ich mir auf den Geräten #Linux, was ich eh schon mit meinen alten #apple Rechnern gemacht habe. -
@heinelo das kann ich gut nachvollziehen, allerdings würde ich auch ins Feld führen, daß #macos im Kern auch ein linuixes System ist und von daher so genutzt werden kann.
In der graphischen Industrie sind #adobe Produkte einfach nicht weg zu denken. Deswegen verwende ich meine #mac Rechner eher wie #opensource Plattformen. Installationen werden mit #shellscripting erledigt und Programme mit #homebrew installiert.
Ich verwende keine AppleIDs, eigene Clouds, Aressbücher, Kalender und einen eigenen Mailserver bei Kunden und bei mir selbst.
So finde ich ist ein #macos ein unabhängiges System, welches auch keinem #killswitch ausgesetzt sein wird, denn sollte sich Apple dazu entscheiden keine Updates mehr zu liefern – was ich nicht glaube – dann installiere ich mir auf den Geräten #Linux, was ich eh schon mit meinen alten #apple Rechnern gemacht habe. -
@heinelo das kann ich gut nachvollziehen, allerdings würde ich auch ins Feld führen, daß #macos im Kern auch ein linuixes System ist und von daher so genutzt werden kann.
In der graphischen Industrie sind #adobe Produkte einfach nicht weg zu denken. Deswegen verwende ich meine #mac Rechner eher wie #opensource Plattformen. Installationen werden mit #shellscripting erledigt und Programme mit #homebrew installiert.
Ich verwende keine AppleIDs, eigene Clouds, Aressbücher, Kalender und einen eigenen Mailserver bei Kunden und bei mir selbst.
So finde ich ist ein #macos ein unabhängiges System, welches auch keinem #killswitch ausgesetzt sein wird, denn sollte sich Apple dazu entscheiden keine Updates mehr zu liefern – was ich nicht glaube – dann installiere ich mir auf den Geräten #Linux, was ich eh schon mit meinen alten #apple Rechnern gemacht habe. -
@heinelo das kann ich gut nachvollziehen, allerdings würde ich auch ins Feld führen, daß #macos im Kern auch ein linuixes System ist und von daher so genutzt werden kann.
In der graphischen Industrie sind #adobe Produkte einfach nicht weg zu denken. Deswegen verwende ich meine #mac Rechner eher wie #opensource Plattformen. Installationen werden mit #shellscripting erledigt und Programme mit #homebrew installiert.
Ich verwende keine AppleIDs, eigene Clouds, Aressbücher, Kalender und einen eigenen Mailserver bei Kunden und bei mir selbst.
So finde ich ist ein #macos ein unabhängiges System, welches auch keinem #killswitch ausgesetzt sein wird, denn sollte sich Apple dazu entscheiden keine Updates mehr zu liefern – was ich nicht glaube – dann installiere ich mir auf den Geräten #Linux, was ich eh schon mit meinen alten #apple Rechnern gemacht habe. -
@heinelo das kann ich gut nachvollziehen, allerdings würde ich auch ins Feld führen, daß #macos im Kern auch ein linuixes System ist und von daher so genutzt werden kann.
In der graphischen Industrie sind #adobe Produkte einfach nicht weg zu denken. Deswegen verwende ich meine #mac Rechner eher wie #opensource Plattformen. Installationen werden mit #shellscripting erledigt und Programme mit #homebrew installiert.
Ich verwende keine AppleIDs, eigene Clouds, Aressbücher, Kalender und einen eigenen Mailserver bei Kunden und bei mir selbst.
So finde ich ist ein #macos ein unabhängiges System, welches auch keinem #killswitch ausgesetzt sein wird, denn sollte sich Apple dazu entscheiden keine Updates mehr zu liefern – was ich nicht glaube – dann installiere ich mir auf den Geräten #Linux, was ich eh schon mit meinen alten #apple Rechnern gemacht habe. -
Some really neat tricks here in this Shell Tricks blog post by https://burningboard.net/@Larvitz -- thanks Larvitz!
I knew of most of them, but am glad to have now learned of:
1. "fc" to edit the previous command in your editor of choice
2. "**" (globstar) for recursive searching instead of needing to use find (or ls -R)
3. That "esc-." is repeatable to go back further than just the previous command's last arg. I use that all the time, but never thought to hit it more than once!https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
-
Some really neat tricks here in this Shell Tricks blog post by https://burningboard.net/@Larvitz -- thanks Larvitz!
I knew of most of them, but am glad to have now learned of:
1. "fc" to edit the previous command in your editor of choice
2. "**" (globstar) for recursive searching instead of needing to use find (or ls -R)
3. That "esc-." is repeatable to go back further than just the previous command's last arg. I use that all the time, but never thought to hit it more than once!https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
-
Some really neat tricks here in this Shell Tricks blog post by https://burningboard.net/@Larvitz -- thanks Larvitz!
I knew of most of them, but am glad to have now learned of:
1. "fc" to edit the previous command in your editor of choice
2. "**" (globstar) for recursive searching instead of needing to use find (or ls -R)
3. That "esc-." is repeatable to go back further than just the previous command's last arg. I use that all the time, but never thought to hit it more than once!https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
-
Some really neat tricks here in this Shell Tricks blog post by https://burningboard.net/@Larvitz -- thanks Larvitz!
I knew of most of them, but am glad to have now learned of:
1. "fc" to edit the previous command in your editor of choice
2. "**" (globstar) for recursive searching instead of needing to use find (or ls -R)
3. That "esc-." is repeatable to go back further than just the previous command's last arg. I use that all the time, but never thought to hit it more than once!https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
-
Some really neat tricks here in this Shell Tricks blog post by https://burningboard.net/@Larvitz -- thanks Larvitz!
I knew of most of them, but am glad to have now learned of:
1. "fc" to edit the previous command in your editor of choice
2. "**" (globstar) for recursive searching instead of needing to use find (or ls -R)
3. That "esc-." is repeatable to go back further than just the previous command's last arg. I use that all the time, but never thought to hit it more than once!https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
-
Recursion usually scares me a bit, but it worked out nicely here:
#convert "cx"-style Esperanto notation to native accents (ĉ) function eaccent { if [[ ${1:-} ]]; then echo "$*" |eaccent else sed 's/cx/ĉ/g; s/gx/ĝ/g; s/hx/ĥ/g; s/jx/ĵ/g; s/sx/ŝ/g; s/ux/ŭ/g; s/C[xX]/Ĉ/g; s/G[xX]/Ĝ/g; s/H[xX]/Ĥ/g; s/J[xX]/Ĵ/g; s/S[xX]/Ŝ/g; s/U[xX]/Ŭ/g' fi }#bash #unix #shell #scripts #scripting #UnixShell #ShellScripting #Esperanto
-
Recursion usually scares me a bit, but it worked out nicely here:
#convert "cx"-style Esperanto notation to native accents (ĉ) function eaccent { if [[ ${1:-} ]]; then echo "$*" |eaccent else sed 's/cx/ĉ/g; s/gx/ĝ/g; s/hx/ĥ/g; s/jx/ĵ/g; s/sx/ŝ/g; s/ux/ŭ/g; s/C[xX]/Ĉ/g; s/G[xX]/Ĝ/g; s/H[xX]/Ĥ/g; s/J[xX]/Ĵ/g; s/S[xX]/Ŝ/g; s/U[xX]/Ŭ/g' fi }#bash #unix #shell #scripts #scripting #UnixShell #ShellScripting #Esperanto
-
Recursion usually scares me a bit, but it worked out nicely here:
#convert "cx"-style Esperanto notation to native accents (ĉ) function eaccent { if [[ ${1:-} ]]; then echo "$*" |eaccent else sed 's/cx/ĉ/g; s/gx/ĝ/g; s/hx/ĥ/g; s/jx/ĵ/g; s/sx/ŝ/g; s/ux/ŭ/g; s/C[xX]/Ĉ/g; s/G[xX]/Ĝ/g; s/H[xX]/Ĥ/g; s/J[xX]/Ĵ/g; s/S[xX]/Ŝ/g; s/U[xX]/Ŭ/g' fi }#bash #unix #shell #scripts #scripting #UnixShell #ShellScripting #Esperanto
-
Recursion usually scares me a bit, but it worked out nicely here:
#convert "cx"-style Esperanto notation to native accents (ĉ) function eaccent { if [[ ${1:-} ]]; then echo "$*" |eaccent else sed 's/cx/ĉ/g; s/gx/ĝ/g; s/hx/ĥ/g; s/jx/ĵ/g; s/sx/ŝ/g; s/ux/ŭ/g; s/C[xX]/Ĉ/g; s/G[xX]/Ĝ/g; s/H[xX]/Ĥ/g; s/J[xX]/Ĵ/g; s/S[xX]/Ŝ/g; s/U[xX]/Ŭ/g' fi }#bash #unix #shell #scripts #scripting #UnixShell #ShellScripting #Esperanto
-
Recursion usually scares me a bit, but it worked out nicely here:
#convert "cx"-style Esperanto notation to native accents (ĉ) function eaccent { if [[ ${1:-} ]]; then echo "$*" |eaccent else sed 's/cx/ĉ/g; s/gx/ĝ/g; s/hx/ĥ/g; s/jx/ĵ/g; s/sx/ŝ/g; s/ux/ŭ/g; s/C[xX]/Ĉ/g; s/G[xX]/Ĝ/g; s/H[xX]/Ĥ/g; s/J[xX]/Ĵ/g; s/S[xX]/Ŝ/g; s/U[xX]/Ŭ/g' fi }#bash #unix #shell #scripts #scripting #UnixShell #ShellScripting #Esperanto
-
🐢💤 Behold the revolutionary art of making Git diffs more complex than assembling IKEA furniture! All you need is #Delta, #fzf, a sprinkle of shell scripting, and the willingness to never see the sunlight again. Truly, the pinnacle of productivity hacks for those with too much time on their hands! 🙄🔧
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting #GitDiffs #ProductivityHacks #ShellScripting #TechHumor #HackerNews #ngated -
🐢💤 Behold the revolutionary art of making Git diffs more complex than assembling IKEA furniture! All you need is #Delta, #fzf, a sprinkle of shell scripting, and the willingness to never see the sunlight again. Truly, the pinnacle of productivity hacks for those with too much time on their hands! 🙄🔧
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting #GitDiffs #ProductivityHacks #ShellScripting #TechHumor #HackerNews #ngated -
🐢💤 Behold the revolutionary art of making Git diffs more complex than assembling IKEA furniture! All you need is #Delta, #fzf, a sprinkle of shell scripting, and the willingness to never see the sunlight again. Truly, the pinnacle of productivity hacks for those with too much time on their hands! 🙄🔧
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting #GitDiffs #ProductivityHacks #ShellScripting #TechHumor #HackerNews #ngated -
🐢💤 Behold the revolutionary art of making Git diffs more complex than assembling IKEA furniture! All you need is #Delta, #fzf, a sprinkle of shell scripting, and the willingness to never see the sunlight again. Truly, the pinnacle of productivity hacks for those with too much time on their hands! 🙄🔧
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting #GitDiffs #ProductivityHacks #ShellScripting #TechHumor #HackerNews #ngated -
🐢💤 Behold the revolutionary art of making Git diffs more complex than assembling IKEA furniture! All you need is #Delta, #fzf, a sprinkle of shell scripting, and the willingness to never see the sunlight again. Truly, the pinnacle of productivity hacks for those with too much time on their hands! 🙄🔧
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting #GitDiffs #ProductivityHacks #ShellScripting #TechHumor #HackerNews #ngated -
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting
#HackerNews #ImprovedGitDiffs #Delta #Fzf #ShellScripting #GitTips
-
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting
#HackerNews #ImprovedGitDiffs #Delta #Fzf #ShellScripting #GitTips
-
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting
#HackerNews #ImprovedGitDiffs #Delta #Fzf #ShellScripting #GitTips
-
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting
#HackerNews #ImprovedGitDiffs #Delta #Fzf #ShellScripting #GitTips
-
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting
#HackerNews #ImprovedGitDiffs #Delta #Fzf #ShellScripting #GitTips
-
TL;DW for the video:
Lock Fix: Detects/removes stale db.lck.
PGP Engine: Auto-fetches missing keys.
Wiki Deep-link: [w] opens the specific Wiki page for the error.
Smart Search: Finds package owners for missing binaries.
Repo: https://github.com/Rakosn1cek/mend (2/2)
-
TL;DW for the video:
Lock Fix: Detects/removes stale db.lck.
PGP Engine: Auto-fetches missing keys.
Wiki Deep-link: [w] opens the specific Wiki page for the error.
Smart Search: Finds package owners for missing binaries.
Repo: https://github.com/Rakosn1cek/mend (2/2)
-
TL;DW for the video:
Lock Fix: Detects/removes stale db.lck.
PGP Engine: Auto-fetches missing keys.
Wiki Deep-link: [w] opens the specific Wiki page for the error.
Smart Search: Finds package owners for missing binaries.
Repo: https://github.com/Rakosn1cek/mend (2/2)
-
TL;DW for the video:
Lock Fix: Detects/removes stale db.lck.
PGP Engine: Auto-fetches missing keys.
Wiki Deep-link: [w] opens the specific Wiki page for the error.
Smart Search: Finds package owners for missing binaries.
Repo: https://github.com/Rakosn1cek/mend (2/2)
-
TL;DW for the video:
Lock Fix: Detects/removes stale db.lck.
PGP Engine: Auto-fetches missing keys.
Wiki Deep-link: [w] opens the specific Wiki page for the error.
Smart Search: Finds package owners for missing binaries.
Repo: https://github.com/Rakosn1cek/mend (2/2)
-
I got annoyed at having to know how many lines I want to `head` or `tail`, and having to write the same stuff over and over again using `cat -n` / `grep` (or even worse an awk script) to figure them out on the fly, so ... two new scripts, `ignore-after` and `ignore-up-to` which are basically content-based versions of `head` and `tail`.
You're welcome.
https://github.com/DrHyde/shellscripts/commit/73b79e211ebaacbb9bc4f296fd1db6d2174b6f9e
-
I got annoyed at having to know how many lines I want to `head` or `tail`, and having to write the same stuff over and over again using `cat -n` / `grep` (or even worse an awk script) to figure them out on the fly, so ... two new scripts, `ignore-after` and `ignore-up-to` which are basically content-based versions of `head` and `tail`.
You're welcome.
https://github.com/DrHyde/shellscripts/commit/73b79e211ebaacbb9bc4f296fd1db6d2174b6f9e
-
I got annoyed at having to know how many lines I want to `head` or `tail`, and having to write the same stuff over and over again using `cat -n` / `grep` (or even worse an awk script) to figure them out on the fly, so ... two new scripts, `ignore-after` and `ignore-up-to` which are basically content-based versions of `head` and `tail`.
You're welcome.
https://github.com/DrHyde/shellscripts/commit/73b79e211ebaacbb9bc4f296fd1db6d2174b6f9e
-
I got annoyed at having to know how many lines I want to `head` or `tail`, and having to write the same stuff over and over again using `cat -n` / `grep` (or even worse an awk script) to figure them out on the fly, so ... two new scripts, `ignore-after` and `ignore-up-to` which are basically content-based versions of `head` and `tail`.
You're welcome.
https://github.com/DrHyde/shellscripts/commit/73b79e211ebaacbb9bc4f296fd1db6d2174b6f9e