summaryrefslogtreecommitdiff
path: root/.envrc
AgeCommit message (Collapse)Author
5 daysRe-namespace some stuff to OmniBen Sima
I was getting confused about what is a product and what is internal infrastructure; I think it is good to keep those things separate. So I moved a bunch of stuff to an Omni namespace, actually most stuff went there. Only things that are explicitly external products are still in the Biz namespace.
5 daysFollowup changes to ctagsBen Sima
These were just hanging around as I was doing other things. Included in this commit are the following: - Configure it in .ctags.d to only index the languages I use - Add support for sources listed in Sources.json - Fix broken link to inspekt3d repo
5 daysDon't create tags in CIBen Sima
This cuts the env script short. Making tags was taking a long time and causing git-branchless to fail. We don't need this in CI.
5 daysRewrite mktags.sh to MakeTags.pyBen Sima
This makes tags for all third-party dependencies, and uses universal-ctags instead of fast-tags. It's so nice having tags for /everything/. It's also pretty fast, and caches the result for third-party deps anyway. Oh yeah this also added an explicit list of third-party Python packages. I need to filter the entire pkgset down to just the ones I'm using in order to make tags for them.
2024-05-23Put __pycache__ in _/intBen Sima
This shouldn't be polluting the main namespace.
2024-04-15Wrap bild log at the terminal-supplied widthBen Sima
Apparently `$COLUMNS` is a POSIX standard, which allows us to set the print width to however wide the user's terminal is. This is a better UI on both wide and narrow terminal layouts: on very narrow layouts, the terminal will properly clear the line instead of doing the wrap-print thing it does when the line overflows, and on wide layouts you can see more of the log message if you're curious. This only works if you export `$COLUMNS` though, because bash only sets the variable in interactive mode, so by default a running program doesn't see it. <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html>
2024-04-10Only load .envrc.local if presentBen Sima
Otherwise, every direnv reload will print an error. Its harmless, but still annoying.
2024-04-10Push ci notes automaticallyBen Sima
I always want to push notes on a successful code push, so using the pre-push hook to do so is perfect. This also expands the pre-push hook to handle new/deleted branches, configures notes automatically, and finally checks that commit messages are decent with gitlint, since `git amend` can bypass the git commit-msg hook.
2024-04-10Use direnv to set environment in git test runsBen Sima
To properly run the tests, I need more than just `$CODEROOT`, unfortunately. For example, I also need to be sure I'm using the `bild` version compiled in that environment, and the `lint` from `_/bin/lint`. So anyway just use the full direnv environment.
2024-04-09Replace tidy.sh with git clean, add it to ciBen Sima
I realized that tidy was doing the same thing as git clean, but git clean can do it more robust and exactly. So switch to that and add it to the git test config aliases so I don't accidentally test with old artifacts.
2024-04-03Enable CI for every commitBen Sima
Uses git test to run CI on every commit before push.
2024-04-03Configure git test commandBen Sima
This is a command from git-branchless that will run and verify tests on all commits in the revset. Now that the bild is stable and fast enough, I should be able to use this to validate all commits before publishing, perhaps even running the pre-push CI script.
2024-04-02Update direnv 1.5.1 -> 3.0.4Ben Sima
As a followup to 6040b2ceae7e6f4a0d41052663bf7826d1e52b4a, maybe this will improve the direnv loading time & frequency issue.
2024-04-02Disable direnv watching a few filesBen Sima
I think these were false-positives and causing unnecessary re-evals of my nix code. So sometimes after a checkout I would end up just waiting a few seconds for my environment to come back, and that's annoying.
2024-04-01Rename .bash files to .shBen Sima
I was already using .sh to refer to shell scripts. When I added .bash, I didn't realize that the linter was set to act on .sh files and not .bash files, so all of these bash scripts escaped the linter. This commit renames them to .sh, removes the .bash extension support from Biz.Namespace, and fixes all the reported shellcheck errors.
2023-10-10Don't swallow namespace-parsing errorsBen Sima
Previously, if there was a problem with the inputs and bild failed to determine the namespace, 'fromPath' would return 'Nothing' and then 'catMaybes' would drop the error-causing input altogether. In the one time that I had a bad input, this made debugging incredibly difficult. It's always a bad idea to swallow errors silently, so instead lets just kill the program if we have bad inputs.
2023-10-03Rename BIZ_ROOT to CODEROOTBen Sima
BIZ_ROOT was too specific. CODEROOT allows for other (non-biz) projects to live in the root of the repo. I didn't want to call it GIT_ROOT because maybe someday I won't want to use git. But I'll never not use code.
2023-08-22Reload direnv on file changesBen Sima
I only just now learned about watch_file.
2022-07-29Implement Guile linking for C buildsBen Sima
In order to write Guile code against C, I need to distiguish between libs and bins, so I did that, then I got the flags that gcc needs from `guile-config` and put them in the args for any C lib build. I tested this with Bessel.c and Bessel.scm (not in this patch, because I don't really want that code in my tree, I'll come up with another way to test it later).
2022-07-26Put _/bin on the PATHBen Sima
The motivation for this was to prevent `lint` from rebuilding every time I ran it. That was really annoying.
2022-07-21Remove rustc and scheme from global environmentBen Sima
2022-07-19Add note about direnv refreshingBen Sima
2022-07-18Delete ShellHook.sh in favor of just using direnvBen Sima
2022-02-07Use nix-direnvBen Sima
2021-11-26Fix GitHub OAuth argsBen Sima
This makes it explicit that we are using GitHub vs some other OAuth args. The idea is that we should be making a new type for every service, this allows us to have type safety in the implementation but a common set or pattern of names for the environment variables and record fields. Also using 'notset' instead of 'mempty' is really helpful for debugging when this breaks, as I found out.
2021-11-26Move commands and add ns functionBen Sima
2021-11-26Add GUILE_LOAD_PATHBen Sima
2020-12-30Add stripe pubkey to environmentBen Sima
2020-12-07Auth and load repos from GitHubBen Sima
2020-07-25bild: port to haskellBen Sima
2020-07-19hero: rename stuff to new structureBen Sima
Working toward https://github.com/bsima/biz/issues/5
2020-06-27hero: implement the basics of user loginsBen Sima
There's also a lot of refactoring/renaming in here, so the diff is really messy. The overall problem is that I've only ever added code, I've never gone back and reorganized/rearchitected stuff. So adding even small features is becoming an enormous effort. Anyway, this adds the basics of user auth. Next I need to add the auth checks for every route that needs it, and make sure everything is back to working correctly.
2020-06-17Fix dev envarsBen Sima
2020-06-02Add EDITOR to .envrcBen Sima
I'm using vim lately for biz coding...
2020-06-02Initialize Hero databaseBen Sima
2020-05-02Auto-overlay niv sourcesBen Sima
This is somewhat experimental, the idea is automatically set the sources from my niv pinned deps. It seems to work, so I'll keep at it and see if I can improve it as issues come up.
2020-04-28Add guile load path backBen Sima
This works, I tested it.
2020-04-19Switch to niv for managing third party sourcesBen Sima
2020-04-19Basic use of nix-shell with direnv/lorriBen Sima
2020-04-10Replace Config/Init/Logger with envy and simpler codeBen Sima
Idk what I was thinking, I dodn't need any of that stuff.
2020-04-03Rewrite buildGhc and buildGhcjsBen Sima
I wanted to even further simplify the build tooling overhead. My general goal is to not have to think about declaring packages, or dependencies, or really anything that you might find in a cabal file. Not all of these goals are possible, but we can get pretty close. With this commit all I need for the 'buildGhc/buildGhcjs' functions is the path to the entrypoint file; everything else is either inferred by the Nix code or declared in the Haskell code comments. The strategy is to map a Haskell module to an executable artifact, and pass just that module to 'ghc --make'. Then we can rely on ghc to handle walking the local filesystem for imports. The only thing ghc really needs to know is a name for the output executable; it is hard to automatically infer this, so we have a simple comment syntax to declare this in the file. The comment syntax is inspired by existing Haskell 'LANGUAGE' pragmas; having this in the same file keeps the configuration as close to the real code as possible. The Nix code then extracts this info from the code comments, and sets the required ghc flags. Second, we need to declare the set of 3rd-party packages that our program relies on. For this we can re-use the same comment syntax and just list the dependencies, then extract them in Nix and construct a package set as we were before. This reduces the amount of "package declaration" code we have to write in default.nix, and reduces the amount of time we have to spend switching between the Haskell code and the Nix code (I find such context switching super annoying). I also think having the configuration in with the Haskell code encourages us to write smaller, simpler modules and only write code that we need. Additionally, I refactored the bild and ghci (now called 'repl') scripts to work in any directory. The .envrc uses direnv to set the path so that you can run these scripts anywhere. That means the following works: $ cd Run/Que $ bild Website $ repl Server λ> :l Run.Que.Server I find this to be a rather nice workflow.
2019-11-02unify nix entrypoints to default.nixBen Sima
2019-11-01add buildHaskellApp nix functionBen Sima