mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-22 04:44:19 +08:00
72 lines
2.1 KiB
Bash
Executable File
72 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash -e
|
|
|
|
source config.sh
|
|
|
|
if [ $# = 0 ]
|
|
then
|
|
recipes="$(ls -1 recipes)"
|
|
else
|
|
recipes="$@"
|
|
fi
|
|
|
|
for recipe in $recipes
|
|
do
|
|
if [ ! -d "recipes/$recipe/source" ]
|
|
then
|
|
echo -e "\033[01;38;5;215mrepo - fetching $recipe\033[0m" >&2
|
|
./cook.sh "$recipe" fetch
|
|
fi
|
|
|
|
if [ ! -d "recipes/$recipe/build" ]
|
|
then
|
|
echo -e "\033[01;38;5;155mrepo - preparing $recipe\033[0m" >&2
|
|
./cook.sh "$recipe" prepare
|
|
else
|
|
TIME_SOURCE="$(find recipes/$recipe/source -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)"
|
|
TIME_BUILD="$(find recipes/$recipe/build -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)"
|
|
if [ "$TIME_SOURCE" -gt "$TIME_BUILD" ]
|
|
then
|
|
echo -e "\033[01;38;5;155mrepo - repreparing $recipe\033[0m" >&2
|
|
./cook.sh "$recipe" unprepare prepare
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f "recipes/$recipe/stage.tar" ]
|
|
then
|
|
echo -e "\033[01;38;5;155mrepo - building $recipe\033[0m" >&2
|
|
./cook.sh "$recipe" update build stage tar
|
|
else
|
|
TIME_BUILD="$(find recipes/$recipe/build -type f -not -path '*/.git*' -printf "%Ts\n" | sort -nr | head -n 1)"
|
|
TIME_STAGE="$(stat -c "%Y" recipes/$recipe/stage.tar)"
|
|
if [ "$TIME_BUILD" -gt "$TIME_STAGE" ]
|
|
then
|
|
echo -e "\033[01;38;5;155mrepo - rebuilding $recipe\033[0m" >&2
|
|
./cook.sh "$recipe" untar unstage update build stage tar
|
|
else
|
|
echo -e "\033[01;38;5;155mrepo - $recipe up to date\033[0m" >&2
|
|
fi
|
|
fi
|
|
done
|
|
|
|
for recipe in $recipes
|
|
do
|
|
if [ "recipes/$recipe/stage.tar" -nt "$REPO/$recipe.tar" ]
|
|
then
|
|
echo -e "\033[01;38;5;155mrepo - publishing $recipe\033[0m" >&2
|
|
./cook.sh $recipe publish
|
|
fi
|
|
done
|
|
|
|
echo -e "\033[01;38;5;155mrepo - generating repo.toml\033[0m" >&2
|
|
|
|
echo "[packages]" > "$REPO/repo.toml"
|
|
for toml in "$REPO/"*".toml"
|
|
do
|
|
package="$(basename "$toml" .toml)"
|
|
if [ "$package" != "repo" ]
|
|
then
|
|
version="$(grep version "$toml" | cut -d '=' -f2-)"
|
|
echo "$package =$version" >> "$REPO/repo.toml"
|
|
fi
|
|
done
|