blob: acf84c6cbe6f3d500e1517ffe34ef2be9952fb18 (
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
|
#!/bin/bash
# Copyleft 2012 - Nicolás Reynolds <fauno@parabola.nu>
# Bootstraps a Parabola root, useful for base systems, build chroots, etc.
# Note: this is a very basic script that let's you do whatever you want, so
# it's not foolproof ;)
# Attempt to provide some help
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo "Installs a Parabola root on the current dir"
echo "Usage: newroot [custom package1 ...]"
echo ""
echo "Environment variables:"
echo -e "WORKDIR \tThe install dir"
echo -e "LOGFILE \tAn alternate logfile ($PWD/pacman.log)"
echo -e "PACCACHE\tThe pacman cache (guessed)"
exit
fi
# Fail at any error
set -E
if [ ! -w / ]; then echo "Run as root."; exit 1; fi
# Should work unless you have a messy pacman.conf
function find_cache() {
grep "CacheDir\s*=\s*" /etc/pacman.conf | tail -n1 | cut -d"=" -f2 | tr -d " "
}
# Build on the current dir or WORKDIR env var
WORKDIR="${WORKDIR:-${PWD}}"
LOGFILE="${LOGFILE:-${WORKDIR}/pacman.log}"
PACCACHE="${PACCACHE:-$(find_cache)}"
# Do a last attempt to have a pacman cache
PACCACHE="${PACCACHE:-/var/cache/pacman/pkg}"
export WORKDIR LOGFILE PACCACHE
function pacman() {
/usr/bin/pacman -r "${WORKDIR}" \
--dbpath "${WORKDIR}"/var/lib/pacman \
--logfile "${LOGFILE}" \
--noconfirm \
--needed \
--cachedir "${PACCACHE}" \
--config /etc/pacman.conf $@
}
# Bootstrap!
mkdir -p "${WORKDIR}"/var/lib/pacman
# We need to do this twice or the install won't find the databases
pacman -Sy
pacman -S base $@
|