Serenity Operating System
1#!/bin/sh
2
3set -e
4
5OUTPUT_FILE=$1
6
7if command -v git >/dev/null; then
8 if git status >/dev/null 2>&1; then
9 GIT_HASH=$( (git log --pretty=format:'%h' -n 1 | cut -c1-7) || true )
10 # There is at least one modified file as reported by git.
11 if git status --porcelain=v2 | head | grep -Ei '^1' >/dev/null; then
12 GIT_HASH="${GIT_HASH}-modified"
13 fi
14 else
15 GIT_HASH=unknown
16 fi
17else
18 GIT_HASH=unknown
19fi
20
21
22cat << EOF > "$OUTPUT_FILE"
23/*
24 * Automatically generated by Kernel/generate-version-file.sh
25 */
26
27#pragma once
28#include <AK/StringView.h>
29
30namespace Kernel {
31
32constexpr unsigned SERENITY_MAJOR_REVISION = 1;
33constexpr unsigned SERENITY_MINOR_REVISION = 0;
34constexpr StringView SERENITY_VERSION = "${GIT_HASH}"sv;
35
36}
37EOF