# setup dev environment using direnv # if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=" fi # # watch some files that effect the dev environment # watch_file shell.nix # watch_file default.nix # watch_file Omni/Bild.nix # watch_file Omni/Bild.hs # if direnv doesn't detect changes to the nix environment, just touch .envrc and # it will refresh use nix # export CODEROOT=$PWD export COLUMNS # # ignore cabdir and hidden files when globbing export GLOBIGNORE="_:**_/**:.*:$GLOBIGNORE" # # scripts for editing go here PATH_add $CODEROOT/Omni/Ide # # executable bild outputs go here PATH_add $CODEROOT/_/bin # # library/linkable bild outputs go here export LTDL_LIBRARY_PATH=$CODEROOT/_/lib # # intermediate compilation artifacts go here export PYTHONPYCACHEPREFIX=$CODEROOT/_/int # # Biz/Dragons.hs: export GITHUB_CLIENT_ID=aa575dc96263bc99556d export GITHUB_CLIENT_STATE=$(cat /proc/sys/kernel/random/uuid) export STRIPE_PUBKEY=pk_test_51I3jv1IC3f10BNLClrBmNr485mWSzQkITvjO0MmSeFn4chFqmODJaHcI7IiN1sqSJYusmRhuPzeGTbCrl8dMsSQP00JXUmlVFC # # run lorri if its available if type lorri &>/dev/null then eval "$(lorri direnv)" fi # # configure git git config --local core.hooksPath "$CODEROOT/Omni/Ide/hooks" git config --local notes.displayRef refs/notes/ci git config --local remotes.origin.fetch +refs/notes/*:refs/notes/* notes git config --local branchless.test.strategy worktree git config --local branchless.test.alias.default 'export CI=1; git clean -ffdx; eval $(direnv export bash); bild --test **/*' git config --local branchless.test.alias.bild 'export CI=1; git clean -ffdx; eval $(direnv export bash); bild **/*' git config --local branchless.test.alias.lint 'export CI=1; git clean -ffdx; eval $(direnv export bash); bild Omni/Lint.hs; lint **/*' git config --local branchless.test.alias.lintfix 'export CI=1; git clean -ffdx; eval $(direnv export bash); bild Omni/Lint.hs; lint --fix **/*' git config --local branchless.test.alias.ci 'export CI=1; git clean -ffdx; eval $(direnv export bash); Omni/Ci.sh' # # end here if we are in CI [[ -n "CI" ]] && exit 0 # # create third-party tags [[ -L "$CODEROOT"/_/src/.ctags.d ]] || ln -s "$CODEROOT"/.ctags.d "$CODEROOT"/_/src/.ctags.d function MakeExternalTags { "$CODEROOT"/Omni/Ide/MakeTags.py --external $(tr ':' '\n' <<< "$ALL_SOURCES") } hashfile="$CODEROOT"/_/src/hash curhash=$(cat "$hashfile") newhash=$(sha256sum <<< "$ALL_SOURCES") [[ ! -e "$hashfile" ]] && MakeExternalTags [[ -e "$hashfile" ]] && [[ "$curhash" != "$newhash" ]] && MakeExternalTags echo "$newhash" > "$hashfile" # # load local settings [[ -f ./.envrc.local ]] && . ./.envrc.local || : ## tips.sh