this post was submitted on 18 Jul 2024
272 points (98.6% liked)

Programmer Humor

19564 readers
818 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
272
Which one??? (programming.dev)
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 

Fuck it, .zshrc it is.

Image transcription:

  • Top text: I STILL DON'T KNOW WHAT SHOULD GO IN .*RC VERSUS .*PROFILE
  • Bottom text: AND AT THIS POINT I'M AFRAID TO ASK
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 35 points 4 months ago* (last edited 4 months ago) (5 children)

It's all about context. If you write a convenience function and put it in zshrc, scripts you run from the cli will not have access to the function as defined in zshrc. Same with aliases added by zsh plugins etc.

If you need "the thing" on the command line, zshrc. If you also need it in scripts you run from the cli, toss it in the profile file.

ETA: I personally keep the functions I want to access from scripts in .zshenv as I recall reading that this file is ALWAYS sourced.

[–] [email protected] 2 points 4 months ago (4 children)

What kind of functions do you write which you share between your scripts? Generally if I'm wanting to reuse a non-trivial function, I extend the functionality of the first script instead.

[–] [email protected] 2 points 4 months ago* (last edited 4 months ago) (2 children)

All of the repos for my GitHub sourced vim plugins live under one parent directory. I symlink to them from ~/.vim

One example is a simple function that pushes the top level repo directory onto my dir stack and then runs a loop where it pushes each subdir into the stack, runs "ggpull" then pops back to the top level repo directory. ggpull is an alias added by the zsh git plugin. After all repos have been updated it pops back to my original pwd.

I run this as part of my "update all the things" script but sometimes I also want to run it in demand from the cli. So I want this function in all scopes and I want it to have access to "ggpull" in all of those scopes.

[–] [email protected] 2 points 4 months ago

I also "misuse" timewarrior a bit and use it to time things like "how much time do I spend waiting for salt to run". That has its own timewarrior db and a wrapper function for pointing the command at said db. I use this in both login and non login shell contexts.

[–] [email protected] 1 points 4 months ago* (last edited 4 months ago)

Yeah, I'd write this as a single update script with options to update vimplugins or update pkg or update all.

I see that you want it to be a function so you can get the chdir as a side effect, but mixing that with updating doesn't make sense to me.

load more comments (1 replies)
load more comments (1 replies)