aboutsummaryrefslogtreecommitdiff
path: root/i18n/fr_FR/libs/git
diff options
context:
space:
mode:
Diffstat (limited to 'i18n/fr_FR/libs/git')
-rwxr-xr-xi18n/fr_FR/libs/git614
1 files changed, 614 insertions, 0 deletions
diff --git a/i18n/fr_FR/libs/git b/i18n/fr_FR/libs/git
new file mode 100755
index 00000000..2cde3dd3
--- /dev/null
+++ b/i18n/fr_FR/libs/git
@@ -0,0 +1,614 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
+# Copyright (C) 2019 Andrew Robbins <contact@andrewrobbins.info>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BRANCH_PREFIX="libreboot-"
+DOTGIT=".git"
+HEAD="HEAD"
+ORIGIN_HEAD="origin/HEAD"
+WILDDOTPATCH="*.patch"
+GIT_NAME="Libreboot"
+GIT_EMAIL="libreboot@libreboot.org"
+
+git_check() {
+ local repository_path=$1
+
+ directory_filled_check "$repository_path/$DOTGIT"
+}
+
+git_clone() {
+ local repository_path=$1
+ local url=$2
+
+ git clone "$url" "$repository_path"
+}
+
+git_submodule_update() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git submodule update --init
+ )
+}
+
+git_merge() {
+ local repository_path=$1
+ local revision=$2
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git merge "$revision"
+ )
+}
+
+git_branch_create() {
+ local repository_path=$1
+ local branch=$2
+ local revision=$3
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git checkout -B "$branch"
+
+ if [[ -n "$revision" ]]
+ then
+ git reset --hard "$revision"
+ fi
+ )
+}
+
+git_branch_delete() {
+ local repository_path=$1
+ local branch=$2
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git branch -D "$branch"
+ )
+}
+
+git_branch_checkout() {
+ local repository_path=$1
+ local branch=$2
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git checkout "$branch" > /dev/null
+ )
+}
+
+git_branch_check() {
+ local repository_path=$1
+ local branch=$2
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git rev-parse --verify "$branch" >/dev/null 2>&1
+ )
+}
+
+git_fetch() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git fetch origin
+ )
+}
+
+git_fetch_check() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git fetch --dry-run origin >/dev/null 2>&1
+ )
+}
+
+git_clean() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git clean -df
+ )
+}
+
+git_remove() {
+ local repository_path=$1
+ local path=$2
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git rm -rf "$path"
+ )
+}
+
+git_diff_staged_check() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git diff --staged --quiet
+ )
+}
+
+git_diff_check() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git diff --quiet
+ )
+}
+
+git_commit() {
+ local repository_path=$1
+ local message=$2
+
+ (
+ export GIT_COMMITTER_NAME=$GIT_NAME
+ export GIT_COMMITTER_EMAIL=$GIT_EMAIL
+
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git commit --author="$GIT_NAME <$GIT_EMAIL>" -m "$message"
+ )
+}
+
+git_am() {
+ local repository_path=$1
+ local branch=$2
+ local patch=$3
+
+ (
+ export GIT_COMMITTER_NAME=$GIT_NAME
+ export GIT_COMMITTER_EMAIL=$GIT_EMAIL
+
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git checkout "$branch" >/dev/null 2>&1
+
+ if ! git am "$patch"; then
+ git am --abort
+
+ exit 1
+ fi
+ )
+}
+
+git_apply() {
+ local repository_path=$1
+ local branch=$2
+ local patch=$3
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git checkout "$branch" >/dev/null 2>&1
+ git apply --index "$patch"
+ )
+}
+
+git_apply_check() {
+ local repository_path=$1
+ local branch=$2
+ local patch=$3
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git checkout "$branch" >/dev/null 2>&1
+ git apply --check "$patch"
+ )
+}
+
+git_patch() {
+ local repository_path=$1
+ local branch=$2
+ local patch=$3
+
+ git_apply_check "$repository_path" "$branch" "$patch" || return 1
+
+ case $patch in
+ *.patch)
+ git_am "$repository_path" "$branch" "$patch"
+ ;;
+ *.diff)
+ git_apply "$repository_path" "$branch" "$patch"
+ git_commit "$repository_path" "Applied ${patch##*/}"
+ ;;
+ *)
+ ;;
+ esac
+}
+
+git_revision() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git rev-parse "$HEAD"
+ )
+}
+
+git_describe() {
+ local repository_path=$1
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git describe --tags
+ )
+}
+
+git_files() {
+ local repository_path="$1"
+
+ (
+ cd "$repository_path" 2>/dev/null || exit 1
+
+ git ls-files -z | sort -z
+ )
+}
+
+git_project_repository_path() {
+ local repository=$1
+
+ printf '%s\n' "$root/$SOURCES/$repository"
+}
+
+git_project_check() {
+ local repository=$1
+
+ local repository_path=$(git_project_repository_path "$repository")
+
+ git_check "$repository_path"
+}
+
+git_project_patch_recursive() {
+ local project=$1
+ local repository=$2
+ local branch=$3
+ local path=$4
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local project_path=$(project_path "$project")
+ local patches_path=$project_path/$PATCHES/$path
+
+ if ! [[ -d $project_path/$PATCHES ]]; then
+ return 0
+ fi
+
+ for patch in "$patches_path"/[!.]*.@(patch|diff); do
+ git_patch "$repository_path" "$branch" "$patch" || return 1
+ done
+
+ if [[ -n $path && $path != . ]]; then
+ git_project_patch_recursive "$project" "$repository" "$branch" "$(dirname "$path")"
+ fi
+}
+
+git_project_clone() {
+ local repository=$1
+ shift
+ local urls=$@
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local directory_path=$(dirname "$repository_path")
+ local url
+
+ mkdir -p "$directory_path"
+
+ (
+ set +e
+
+ for url in $urls
+ do
+ if git_clone "$repository_path" "$url"
+ then
+ return 0
+ fi
+ done
+
+ return 1
+ )
+}
+
+git_project_prepare() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ git_project_prepare_revision "$project" "$repository" "$@"
+ git_project_prepare_blobs "$project" "$repository" "$@"
+ git_project_prepare_patch "$project" "$repository" "$@"
+}
+
+git_project_prepare_blobs() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local blob
+
+ while read -r blob
+ do
+ git_remove "$repository_path" "$blob"
+ done < <(project_blobs "$project" "$@")
+
+ if ! git_diff_staged_check "$repository_path"
+ then
+ git_commit "$repository_path" "Removed blobs"
+ fi
+}
+
+git_project_prepare_patch() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local branch=$project
+ local argument
+ local path
+
+ for argument in "$@"
+ do
+ if [[ -z "$path" ]]
+ then
+ path="$argument"
+ else
+ path="$path/$argument"
+ fi
+
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local prepare_branch=$BRANCH_PREFIX$branch
+ local prepare_path=$path
+
+ git_project_patch_recursive "$project" "$repository" "$prepare_branch" "$prepare_path"
+ fi
+}
+
+git_project_prepare_revision() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local project_path=$(project_path "$project")
+ local configs_path="$project_path/$CONFIGS"
+ local branch=$project
+ local prepare_revision
+ local argument
+ local path
+
+ for argument in "" "$@"
+ do
+ if [[ -n $argument ]]
+ then
+ if [[ -z $path ]]
+ then
+ path="$argument"
+ else
+ path="$path/$argument"
+ fi
+
+ branch="$branch-$argument"
+ fi
+
+ local revision_path="$configs_path/$path/$REVISION"
+
+ if [[ -f $revision_path ]]; then
+ prepare_revision=$(< "$revision_path")
+ fi
+ done
+
+ if [[ -n $branch ]]
+ then
+ local prepare_branch=$BRANCH_PREFIX$branch
+
+ git_branch_create "$repository_path" "$prepare_branch" "$prepare_revision"
+ fi
+}
+
+git_project_prepare_check() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local branch=$project
+ local argument
+
+ for argument in "$@"
+ do
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local prepare_branch=$BRANCH_PREFIX$branch
+
+ git_branch_check "$repository_path" "$prepare_branch"
+ fi
+}
+
+git_project_prepare_clean() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local branch=$project
+ local argument
+
+ for argument in "$@"
+ do
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local prepare_branch=$BRANCH_PREFIX$branch
+
+ if git_branch_check "$repository_path" "$prepare_branch"
+ then
+ git_branch_delete "$repository_path" "$prepare_branch"
+ fi
+ fi
+}
+
+git_project_checkout() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local branch=$project
+ local argument
+
+ for argument in "$@"
+ do
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local checkout_branch=$BRANCH_PREFIX$branch
+
+ if git_branch_check "$repository_path" "$checkout_branch"
+ then
+ git_branch_checkout "$repository_path" "$checkout_branch"
+ git_submodule_update "$repository_path"
+ fi
+ fi
+}
+
+git_project_update() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+
+ git_fetch "$repository_path"
+ git_branch_checkout "$repository_path" "$ORIGIN_HEAD"
+
+ git_project_prepare_clean "$project" "$repository" "$@"
+ git_project_prepare "$project" "$repository" "$@"
+}
+
+git_project_update_check() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ git_project_prepare_check "$project" "$repository" "$@"
+
+ git_fetch_check "$repository_path"
+}
+
+git_project_release() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local branch=$project
+ local argument
+
+ for argument in "$@"
+ do
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local release_branch=$BRANCH_PREFIX$branch
+
+ if git_branch_check "$repository_path" "$release_branch"
+ then
+ local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$ARCHIVE"
+ local sources_path="$root/$SOURCES/$repository"
+
+ printf '%s\n' "Releasing sources archive for $project (with ${arguments:-no argument}) from "$repository" git"
+
+ git_branch_checkout "$repository_path" "$release_branch"
+ git_submodule_update "$repository_path"
+ git_clean "$repository_path"
+ archive_create "$archive_path" "$sources_path" "$release_branch"
+ file_verification_create "$archive_path"
+ fi
+ fi
+}
+
+git_project_release_check() {
+ local project=$1
+ shift
+ local repository=$1
+ shift
+
+ local repository_path=$(git_project_repository_path "$repository")
+ local branch=$project
+ local argument
+
+ for argument in "$@"
+ do
+ branch="$branch-$argument"
+ done
+
+ if [[ -n $branch ]]
+ then
+ local release_branch=$BRANCH_PREFIX$branch
+
+ if git_branch_check "$repository_path" "$release_branch"
+ then
+ local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$ARCHIVE"
+
+ file_exists_check "$archive_path"
+ fi
+ fi
+}