diff --git a/scripts/changelog.sh b/scripts/changelog.sh new file mode 100755 index 0000000..10348a8 --- /dev/null +++ b/scripts/changelog.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +set -e + +LAST_RELEASE_TAG="$(git describe --tags --abbrev=0)" +LAST_RELEASE_TIMESTAMP="$(git log --format="%ct" -1 "${LAST_RELEASE_TAG}")" +echo "Last release: ${LAST_RELEASE_TAG} at ${LAST_RELEASE_TIMESTAMP}" + +REPOS=( + redox=. + cookbook=cookbook + rust=rust +) + +for package in $(installer/target/release/redox_installer --list-packages -c config/x86_64/desktop.toml) +do + REPOS+=("${package}=cookbook/recipes/${package}/source") +done + +# TODO: resolve dependencies instead of manually adding these initfs packages +for package in init logd nulld ramfs randd zerod +do + REPOS+=("${package}=cookbook/recipes/${package}/source") +done + +for name_repo in "${REPOS[@]}" +do + name="$(echo "${name_repo}" | cut -d "=" -f 1)" + repo="$(echo "${name_repo}" | cut -d "=" -f 2-)" + echo -en "\x1B[1m${name}:\x1B[0m " + if [ -e "${repo}/.git" ] + then + remote="$(git -C "${repo}" remote get-url origin)" + website="${remote%.*}" + before="$(git -C "${repo}" log --until="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)" + after="$(git -C "${repo}" log --since="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)" + if [ -z "${before}" ] + then + echo "New repository at ${website}" + elif [ -z "${after}" ] + then + echo "No changes" + else + echo "${website}/-/compare/${before}...${after}" + fi + else + echo "Not a git repository" + fi +done diff --git a/scripts/find-recipe.sh b/scripts/find-recipe.sh new file mode 100755 index 0000000..231b9fd --- /dev/null +++ b/scripts/find-recipe.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +# Ensure arch and config are set as desired, we use these to find the build dir +export ARCH=x86_64 +export CONFIG_NAME=desktop + +# Make sure to unmount the image first +make unmount &>/dev/null || true + +# Mount the image +make mount >/dev/null + +# Find all files +find "build/${ARCH}/${CONFIG_NAME}/" -type f | cut -d / -f5- |\ +sort |\ +uniq |\ +while read path +do + # Skip empty paths + if [ -z "${path}" ] + then + continue + fi + + # Find all packages providing this file + pkgs="$( + find cookbook/recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" -type f 2>/dev/null | + cut -d/ -f3 | + tr '\n' ' ' | + sort | + uniq + )" + if [ -n "${pkgs}" ] + then + echo "$path: ${pkgs}" + else + echo "$path: no packages, see config/${ARCH}/${CONFIG_NAME}.toml" + fi +done + +# Make sure to unmount the image +make unmount &>/dev/null || true