website/scripts/lsync.sh

61 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
#
# This script checks if the English version of a page has changed since a localized
# page has been committed.
Improve the lsync script This PR improves the lsync script so that it can handle directories (recursively). For example, you can run the following command to find the detailed changes that are out of sync: ``` ./scripts/lsync content/zh/docs/concepts/_index.md ``` and you can run the following command to identify how many files are out of sync under a given directory: ``` > ./scripts/lsync content/zh/docs/concepts/ content/en/docs/concepts/architecture/control-plane-node-communication.md | 2 +- content/en/docs/concepts/architecture/controller.md | 10 ++++++++++ content/en/docs/concepts/cluster-administration/logging.md | 4 ++-- content/en/docs/concepts/cluster-administration/system-metrics.md | 2 +- content/en/docs/concepts/configuration/pod-priority-preemption.md | 2 +- content/en/docs/concepts/containers/runtime-class.md | 2 +- content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md | 2 +- content/en/docs/concepts/extend-kubernetes/operator.md | 2 +- content/en/docs/concepts/extend-kubernetes/service-catalog.md | 2 +- content/en/docs/concepts/overview/kubernetes-api.md | 2 +- content/en/docs/concepts/overview/what-is-kubernetes.md | 3 +-- content/en/docs/concepts/overview/working-with-objects/labels.md | 2 +- content/en/docs/concepts/scheduling-eviction/kube-scheduler.md | 4 ++-- content/en/docs/concepts/services-networking/dual-stack.md | 2 +- content/en/docs/concepts/storage/ephemeral-volumes.md | 11 +++++------ content/en/docs/concepts/storage/persistent-volumes.md | 2 +- content/en/docs/concepts/storage/storage-classes.md | 2 +- content/en/docs/concepts/storage/volumes.md | 5 ++--- content/en/docs/concepts/workloads/_index.md | 2 +- content/en/docs/concepts/workloads/controllers/replicaset.md | 4 ++-- content/en/docs/concepts/workloads/pods/_index.md | 4 ++-- content/en/docs/concepts/workloads/pods/pod-lifecycle.md | 3 ++- ```
2020-10-24 01:29:13 +00:00
if [ "$#" -ne 1 ] ; then
echo -e "\nThis script checks if the English version of a page has changed since a " >&2
echo -e "localized page has been committed.\n" >&2
echo -e "Usage:\n\t$0 <PATH>\n" >&2
echo -e "Example:\n\t$0 content/zh/docs/concepts/_index.md\n" >&2
exit 1
fi
Improve the lsync script This PR improves the lsync script so that it can handle directories (recursively). For example, you can run the following command to find the detailed changes that are out of sync: ``` ./scripts/lsync content/zh/docs/concepts/_index.md ``` and you can run the following command to identify how many files are out of sync under a given directory: ``` > ./scripts/lsync content/zh/docs/concepts/ content/en/docs/concepts/architecture/control-plane-node-communication.md | 2 +- content/en/docs/concepts/architecture/controller.md | 10 ++++++++++ content/en/docs/concepts/cluster-administration/logging.md | 4 ++-- content/en/docs/concepts/cluster-administration/system-metrics.md | 2 +- content/en/docs/concepts/configuration/pod-priority-preemption.md | 2 +- content/en/docs/concepts/containers/runtime-class.md | 2 +- content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md | 2 +- content/en/docs/concepts/extend-kubernetes/operator.md | 2 +- content/en/docs/concepts/extend-kubernetes/service-catalog.md | 2 +- content/en/docs/concepts/overview/kubernetes-api.md | 2 +- content/en/docs/concepts/overview/what-is-kubernetes.md | 3 +-- content/en/docs/concepts/overview/working-with-objects/labels.md | 2 +- content/en/docs/concepts/scheduling-eviction/kube-scheduler.md | 4 ++-- content/en/docs/concepts/services-networking/dual-stack.md | 2 +- content/en/docs/concepts/storage/ephemeral-volumes.md | 11 +++++------ content/en/docs/concepts/storage/persistent-volumes.md | 2 +- content/en/docs/concepts/storage/storage-classes.md | 2 +- content/en/docs/concepts/storage/volumes.md | 5 ++--- content/en/docs/concepts/workloads/_index.md | 2 +- content/en/docs/concepts/workloads/controllers/replicaset.md | 4 ++-- content/en/docs/concepts/workloads/pods/_index.md | 4 ++-- content/en/docs/concepts/workloads/pods/pod-lifecycle.md | 3 ++- ```
2020-10-24 01:29:13 +00:00
# Check if path exists, and whether it is a directory or a file
if [ ! -e "$1" ] ; then
echo "Path not found: '$1'" >&2
exit 2
fi
if [ -d "$1" ] ; then
SYNCED=1
for f in `find $1 -name "*.md"` ; do
EN_VERSION=`echo $f | sed "s/content\/..\//content\/en\//g"`
if [ ! -e $EN_VERSION ]; then
echo -e "**removed**\t$EN_VERSION"
SYNCED=0
continue
fi
LASTCOMMIT=`git log -n 1 --pretty=format:%h -- $f`
git diff --exit-code --numstat $LASTCOMMIT...HEAD $EN_VERSION
if [ $? -ne 0 ] ; then
SYNCED=0
fi
done
if [ $SYNCED -eq 1 ]; then
echo "$1 is still in sync"
exit 0
fi
exit 1
fi
LOCALIZED="$1"
# Try get the English version
EN_VERSION=`echo $LOCALIZED | sed "s/content\/..\//content\/en\//g"`
if [ ! -e $EN_VERSION ]; then
echo "$EN_VERSION has been removed."
Improve the lsync script This PR improves the lsync script so that it can handle directories (recursively). For example, you can run the following command to find the detailed changes that are out of sync: ``` ./scripts/lsync content/zh/docs/concepts/_index.md ``` and you can run the following command to identify how many files are out of sync under a given directory: ``` > ./scripts/lsync content/zh/docs/concepts/ content/en/docs/concepts/architecture/control-plane-node-communication.md | 2 +- content/en/docs/concepts/architecture/controller.md | 10 ++++++++++ content/en/docs/concepts/cluster-administration/logging.md | 4 ++-- content/en/docs/concepts/cluster-administration/system-metrics.md | 2 +- content/en/docs/concepts/configuration/pod-priority-preemption.md | 2 +- content/en/docs/concepts/containers/runtime-class.md | 2 +- content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md | 2 +- content/en/docs/concepts/extend-kubernetes/operator.md | 2 +- content/en/docs/concepts/extend-kubernetes/service-catalog.md | 2 +- content/en/docs/concepts/overview/kubernetes-api.md | 2 +- content/en/docs/concepts/overview/what-is-kubernetes.md | 3 +-- content/en/docs/concepts/overview/working-with-objects/labels.md | 2 +- content/en/docs/concepts/scheduling-eviction/kube-scheduler.md | 4 ++-- content/en/docs/concepts/services-networking/dual-stack.md | 2 +- content/en/docs/concepts/storage/ephemeral-volumes.md | 11 +++++------ content/en/docs/concepts/storage/persistent-volumes.md | 2 +- content/en/docs/concepts/storage/storage-classes.md | 2 +- content/en/docs/concepts/storage/volumes.md | 5 ++--- content/en/docs/concepts/workloads/_index.md | 2 +- content/en/docs/concepts/workloads/controllers/replicaset.md | 4 ++-- content/en/docs/concepts/workloads/pods/_index.md | 4 ++-- content/en/docs/concepts/workloads/pods/pod-lifecycle.md | 3 ++- ```
2020-10-24 01:29:13 +00:00
exit 3
fi
Improve the lsync script This PR improves the lsync script so that it can handle directories (recursively). For example, you can run the following command to find the detailed changes that are out of sync: ``` ./scripts/lsync content/zh/docs/concepts/_index.md ``` and you can run the following command to identify how many files are out of sync under a given directory: ``` > ./scripts/lsync content/zh/docs/concepts/ content/en/docs/concepts/architecture/control-plane-node-communication.md | 2 +- content/en/docs/concepts/architecture/controller.md | 10 ++++++++++ content/en/docs/concepts/cluster-administration/logging.md | 4 ++-- content/en/docs/concepts/cluster-administration/system-metrics.md | 2 +- content/en/docs/concepts/configuration/pod-priority-preemption.md | 2 +- content/en/docs/concepts/containers/runtime-class.md | 2 +- content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md | 2 +- content/en/docs/concepts/extend-kubernetes/operator.md | 2 +- content/en/docs/concepts/extend-kubernetes/service-catalog.md | 2 +- content/en/docs/concepts/overview/kubernetes-api.md | 2 +- content/en/docs/concepts/overview/what-is-kubernetes.md | 3 +-- content/en/docs/concepts/overview/working-with-objects/labels.md | 2 +- content/en/docs/concepts/scheduling-eviction/kube-scheduler.md | 4 ++-- content/en/docs/concepts/services-networking/dual-stack.md | 2 +- content/en/docs/concepts/storage/ephemeral-volumes.md | 11 +++++------ content/en/docs/concepts/storage/persistent-volumes.md | 2 +- content/en/docs/concepts/storage/storage-classes.md | 2 +- content/en/docs/concepts/storage/volumes.md | 5 ++--- content/en/docs/concepts/workloads/_index.md | 2 +- content/en/docs/concepts/workloads/controllers/replicaset.md | 4 ++-- content/en/docs/concepts/workloads/pods/_index.md | 4 ++-- content/en/docs/concepts/workloads/pods/pod-lifecycle.md | 3 ++- ```
2020-10-24 01:29:13 +00:00
# Last commit for the localized path
LASTCOMMIT=`git log -n 1 --pretty=format:%h -- $LOCALIZED`
git diff --exit-code $LASTCOMMIT...HEAD $EN_VERSION
if [ "$?" -eq 0 ]; then
echo "$LOCALIZED is still in sync"
exit 0
fi