-
Notifications
You must be signed in to change notification settings - Fork 4
/
lfs.sh
62 lines (52 loc) · 1.38 KB
/
lfs.sh
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
#!/bin/bash
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
readonly PREPARE_BUILD_DIR="$SCRIPT_DIR/prepare_build"
readonly BUILD_LFS_DIR="$SCRIPT_DIR/build_lfs"
function build_lfs() {
# Setting The $LFS Variable
export LFS=/mnt/lfs
# Preparing for the Build
#
# shellcheck source=/dev/null
source "$PREPARE_BUILD_DIR/prepare_build.sh"
# Preparing Virtual Kernel File Systems
#
# shellcheck source=/dev/null
source "$BUILD_LFS_DIR/prepare_lfs.sh"
# Installing Basic System Software
sudo chroot "$LFS" /tools/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h \
-c "source /vagrant/build_lfs/build_lfs.sh"
# System Configuration
sudo chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login \
-c "source /vagrant/build_lfs/configure_lfs.sh"
}
function clean_lfs() {
pushd "$PREPARE_BUILD_DIR" && make clean && popd
pushd "$BUILD_LFS_DIR" && make clean && popd
}
function test_lfs() {
find . -name "*.sh" -print0 | xargs -0 bash -n && \
find . -maxdepth 1 -name "*.sh" -print0 | xargs -0 shellcheck
}
case "$1" in
build)
build_lfs
;;
clean)
clean_lfs
;;
test)
test_lfs
;;
*)
echo "Usage: $0 {build|clean|test}"
exit 1
esac