swift-sh
dotfiles
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.
swift-sh
- Ask HN: Share a shell script you like
-
Using Swift for Scripting
Yes, swift CLI will compile and run your swift file.
But many people also want to use libraries. For Python, they use the system libraries or work within an environment with installed libraries (i.e., the library-install process happens at environment-configuration time).
In Swift, the easiest way to consume libraries is using packages, but that requires a Package.swift declaring the project scope for the script file (which must comply with top-level and main-entrypoint code requirements).
The easiest way to do that when scripting is a swift tool that manages the process of gathering your library dependencies, auto-generating a project, building the tool, and caching it all so there's no overhead the next time.
The best available tool now is https://github.com/mxcl/swift-sh. It reads dependency information off import comments.
It can also generate the project for you, if/when you want to build in XCode (e.g., move into a more complex application, perhaps requiring sandbox declarations).
Working scripts are not always updated, so any script-build tool has to maintain backwards compatibility, but the swift package manager has changed a lot in recent versions. swift-sh seems to err on the side of backwards compatibility, and does not support e.g., the most recent dependency versioning styles.
Swift-forum discussions about better support for scripting haven't resulted in any official tooling.
- On Env Shebangs
-
Did anyone tried to run swift on raspberry pi before? I managed to install swift on my raspberry pi and print hello wold. Butbwhen i tried to do the same after 10 seconds it didnt work. Any idea why it didn’t print? DispatchQueue.main.asyncAfter(deadline: .now() + 10) { print(“Hello world”) }
Note that this has nothing to do with the Raspberry Pi. You'll have the same issue running on the command-line. If you wish to test your programs on your computer where you have more tools and horse-power, I find swift-sh gives a good command-line experience and is a great alternative to Playgrounds especially for small tests.
dotfiles
-
Ask HN: Share a shell script you like
diffconflicts [dc] lets you resolve diffs as a two way diff between what's in the conflict markers instead of including the resolved parts in the diff. It opens the diff in vim but could be adapted for other editors. Verbose explanation: https://github.com/whiteinge/diffconflicts/blob/master/READM...
The author converted it to a vim plugin with the same name, but I use a different vim plugin implementation [mergetool].
[dc]: https://github.com/whiteinge/dotfiles/blob/master/bin/diffco...
-
Is there any clil tool for downloading documentations?
Example: https://github.com/whiteinge/dotfiles/blob/master/bin/devdocs-local
- whiteinge/dotfiles: dotfiles for vim, git, zsh, cwm, xinit, and many others. Install with: lndir -silent /path/to/dotfiles $HOME
- gotz: CLI tool for cross timezone teams
- Units CLI Question
-
To people who have tons of shell scripts and aliases, how do you organize/categorize them?
Took me several years of forgetting script names before I finally just made a README of filenames and descriptions that I can search when I forget. I didn't want some complicated organization framework.
-
Is there any shortcoming on having a seamless navigation between vim and tmux?
I ran a (mostly) vim-tmux-navigator setup for almost a year but ultimately removed it. It was indeed a seamless way to quickly jump between Vim and tmux panes but I felt it enabled learning some sloppy habits on my part.
-
Autoident drives me nuts. Even when I supposedly turned it off it still does 4 spaces in some places and 2 in others. How do I completely turn this thing off?
I added filetype indent off so that indent plugins for the various languages would not automatically execute, and then I set smartindent so that regardless of what kind of file I'm editing it (very!) simply just re-uses the same indent from the previous line. For everything else I just manually ctrl-t/ctrl-d as I type.
What are some alternatives?
resholve - a shell resolver? :) (find and resolve shell script dependencies)
dotfiles - Custom dotfile configurations and settings
stderred - stderr in red
dotfiles
dotfiles - My Dotfiles
spellbook - 🪄 Shell and Powershell scripts registry
zeal-cli - A CLI for managing offline documentation for Zeal.
Alamofire - Elegant HTTP Networking in Swift
tmuxcator - A script to manage tmux.
SwiftBar - Powerful macOS menu bar customization tool
vim-mergetool - Better vim-based mergetool