<commit_before>#!/bin/bash

set -ex

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

rundir=$PWD

tempfile() {
    echo "${workdir}/tmp_$(date +%Y%m%d%H%M%S)_${RANDOM}"
}

config() {
    cat ${SCRIPT_DIR}/config.json | jq -r ".${1}"
}

chroot_exec() {
    LANG=C chroot ${rootfs} $@
}


###############################################################################
### Prepare temporary working directory                                     ###
###############################################################################

workdir=/tmp/build
rootfs="${workdir}/root"
bootfs="${rootfs}/boot"
rm -rf ${workdir}
mkdir -p ${workdir}


###############################################################################
### Create a virtual block device                                           ###
###############################################################################

block_size=$(config partitions.block_size)
disk_size=$(config partitions.disk_size)
boot_size=$(config partitions.boot_size)

image=${workdir}/rpi.img

dd if=/dev/zero of=${image} bs=${block_size} count=$((${disk_size}/${block_size}))


###############################################################################
### Create 'boot' and 'root' partitions                                     ###
###############################################################################

device=$(losetup --find --show ${image})

set +e

fdisk ${device} << EOF
n
p
1

+$((${boot_size} / 1024))K
t
c
n
p
2


w
EOF

set -e

losetup -d ${device}


###############################################################################
### Create a loop device for 'boot' and 'root' partitions                   ###
###############################################################################

kpartx -va ${image}

# TODO don't hardcode device names, read kpartx output
partition[boot]=/dev/mapper/loop0p1
partition[root]=/dev/mapper/loop0p2

sleep 5


###############################################################################
### Create filesystems for 'boot' and 'root' partitions                     ###
###############################################################################

mkfs.vfat ${partition[boot]}
mkfs.ext4 ${partition[root]}

<commit_msg>Bugfix on partition indexing<commit_after>#!/bin/bash

set -ex

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

rundir=$PWD

tempfile() {
    echo "${workdir}/tmp_$(date +%Y%m%d%H%M%S)_${RANDOM}"
}

config() {
    cat ${SCRIPT_DIR}/config.json | jq -r ".${1}"
}

chroot_exec() {
    LANG=C chroot ${rootfs} $@
}


###############################################################################
### Prepare temporary working directory                                     ###
###############################################################################

workdir=/tmp/build
rootfs="${workdir}/root"
bootfs="${rootfs}/boot"
rm -rf ${workdir}
mkdir -p ${workdir}


###############################################################################
### Create a virtual block device                                           ###
###############################################################################

block_size=$(config partitions.block_size)
disk_size=$(config partitions.disk_size)
boot_size=$(config partitions.boot_size)

image=${workdir}/rpi.img

dd if=/dev/zero of=${image} bs=${block_size} count=$((${disk_size}/${block_size}))


###############################################################################
### Create 'boot' and 'root' partitions                                     ###
###############################################################################

device=$(losetup --find --show ${image})

set +e

fdisk ${device} << EOF
n
p
1

+$((${boot_size} / 1024))K
t
c
n
p
2


w
EOF

set -e

losetup -d ${device}


###############################################################################
### Create a loop device for 'boot' and 'root' partitions                   ###
###############################################################################

kpartx -va ${image}

# TODO don't hardcode device names, read kpartx output
declare -A partition
partition[boot]=/dev/mapper/loop0p1
partition[root]=/dev/mapper/loop0p2

sleep 5


###############################################################################
### Create filesystems for 'boot' and 'root' partitions                     ###
###############################################################################

mkfs.vfat ${partition[boot]}
mkfs.ext4 ${partition[root]}


{'fraction_non_alphanumeric': 0.4630203720106289, 'fraction_numerical': 0.006200177147918512, 'mean_word_length': 4.746819338422392, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2024551', 'n_tokens_mistral': 1231, 'n_tokens_neox': 1118, 'n_words': 244}