blob: f342995dccaf7b265469b39763e1aabd40ed38d6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# 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
#
# 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
|