mycmd
oh
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mycmd
-
Bash functions are better than I thought
Woah, this is very cool. I may try to adopt this.
I recently discovered, similar to the author of the post for this thread, that local variables are dynamically scoped.
I have been writing a lot more shell scripts lately, using a "library" [1] of sorts I've been writing. When I was debugging one of my scripts that uses mycmd, I discovered that I had failed to declare some of my variables local and they were leaking out to the global scope.
I had recently added functionality to call a set of functions on script exit, so I added something that would output the defined variables, in hopes that I could write something that will output them at the beginning and then the end and show the difference. I was surprised when variables defined in my dispatch function [2] for those at exit functions were showing up, even though they were definitely defined as local. It was then that I dug around and discovered the dynamic scope of variables.
I've been trying to figure out how to accomplish what I desire but exclude those variables from calling functions. I haven't been able to find an obvious way to see if the variable is coming from a calling function. I might be able to use techniques like you've pointed out in your linked post to add the tracing that I want. Still need to think more on this.
---
[1] https://github.com/travisbhartwell/mycmd
oh
- Understanding the Power of Lisp (2020)
- Bass – Lisp dialect for scripting the infrastructure beneath your project
-
CommandConsole: A shell written in C
I think an extensible shell like oh shell would be something I would prefer. Though it should not need closures on heap to extend (which is ridolous slow on arithmetic) and generate the data types at compilation time.
-
Bash functions are better than I thought
> Is there a reason we aren’t using a shell with a proper programming language for scripting?
Mostly because the people who want to introduce a "programming language" into the shell don't prioritize being a shell.
Check out the "Oh" shell for contrast. This is what a programming language looks like when you force it to conform to being a shell first priority.
https://github.com/michaelmacinnis/oh
https://www.youtube.com/watch?v=v1m-WEZz46U
This is "Scheme-like" but has FEXPRs so things can be redefined and evaluation can be controlled.
-
Show HN: SectorLISP Now Fits in One Sector
I love chatting about Kernel :D Here's my most recent post: https://lobste.rs/s/d0hogq/problem_with_macros#c_nozcrm
Thanks for showing me Oh! It really has f-exprs?! I didn't immediately see it in https://github.com/michaelmacinnis/oh/blob/main/doc/manual.m...
- Oh, a New Unix Shell
What are some alternatives?
hasura-ci-cd-action
elvish - Powerful scripting language & Versatile interactive shell
basalt - The rock-solid Bash package manager.
sicp - HTML5/EPUB3 version of SICP
Seed - A Rust framework for creating web apps
cl-unix-cybernetics - UNIX system administration in Common Lisp
bash2048 - 2048 in bash
nsd - NGS Scripts Dumpster
stripe-jobs-cli
bash-core - Core functions for any Bash program.
PPSS - Parallel Processing Shell Script