OILS / deps / make-bin.sh View on Github | oils.pub

94 lines, 45 significant
1#!/usr/bin/env bash
2#
3# Usage:
4# deps/make-bin.sh <function name>
5#
6# Examples:
7# deps/make-bin.sh contrib # make symlinks in ../oils.DEPS/bin
8
9set -o nounset
10set -o pipefail
11set -o errexit
12
13# Note: versions are duplicated from build/deps.sh right now
14
15link-relative() {
16 ln -s -f --relative --verbose "$@"
17}
18
19re2c() {
20 local deps_dir=$1
21 link-relative $deps_dir/wedge/re2c/3.0/bin/re2c $deps_dir/bin
22}
23
24python2() {
25 ### duplicated from Dockerfile.soil-debian-12
26 local deps_dir=$1
27
28 # Make a python2 symlink only, NOT python
29 link-relative $deps_dir/wedge/python2/2.7.18/bin/python $deps_dir/bin/python2
30}
31
32python3() {
33 ### duplicated from Dockerfile.soil-debian-12
34 local deps_dir=$1
35
36 link-relative $deps_dir/wedge/python3/3.10.4/bin/python3 $deps_dir/bin
37}
38
39shells() {
40 ### used in ovm-tarball
41 local deps_dir=$1
42
43 link-relative $deps_dir/wedge/bash/4.4/bin/bash $deps_dir/bin/bash-4.4
44 link-relative $deps_dir/wedge/bash/5.2.21/bin/bash $deps_dir/bin/bash-5.2.21
45 # newer bash 5.2 is the default
46 link-relative $deps_dir/wedge/bash/5.2.21/bin/bash $deps_dir/bin/bash
47
48 # symlink as ash
49 link-relative $deps_dir/wedge/busybox/1.35.0/busybox $deps_dir/bin/ash
50
51 link-relative $deps_dir/wedge/dash/0.5.10.2/bin/dash $deps_dir/bin
52 link-relative $deps_dir/wedge/mksh/R52c/mksh $deps_dir/bin
53 link-relative $deps_dir/wedge/yash/2.49/bin/yash $deps_dir/bin
54
55 link-relative $deps_dir/wedge/zsh/5.1.1/bin/zsh $deps_dir/bin/zsh-5.1.1
56 link-relative $deps_dir/wedge/zsh/5.9/bin/zsh $deps_dir/bin/zsh-5.9
57 # older zsh 5.1.1 is the default
58 link-relative $deps_dir/wedge/zsh/5.1.1/bin/zsh $deps_dir/bin/zsh
59}
60
61contrib() {
62 ### What contributors need to run
63
64 local deps_dir=../oils.DEPS
65
66 mkdir -p $deps_dir/bin
67
68 shells $deps_dir
69 echo
70
71 re2c $deps_dir
72 python2 $deps_dir
73 python3 $deps_dir
74
75 # TODO: can move others
76 #
77 # Right now there are explicit paths in cmark.py and time_.py
78 # - time-helper
79 # - bin/cmark
80 #
81 # - bloaty
82 # - uftrace
83 # - flame graphs, etc.
84}
85
86extra() {
87 # The release process depends on bloaty
88 local deps_dir=../oils.DEPS
89
90 link-relative $deps_dir/wedge/bloaty/1.1/bloaty $deps_dir/bin/bloaty
91 link-relative $deps_dir/wedge/uftrace/0.13/bin/uftrace $deps_dir/bin/uftrace
92}
93
94"$@"