| #!/bin/bash |
| ############################################################################### |
| # Copyright (c) 2018, 2020 Kichwa Coders Ltd and others. |
| # |
| # This program and the accompanying materials |
| # are made available under the terms of the Eclipse Public License 2.0 |
| # which accompanies this distribution, and is available at |
| # https://www.eclipse.org/legal/epl-2.0/ |
| # |
| # SPDX-License-Identifier: EPL-2.0 |
| ############################################################################### |
| |
| set -e |
| |
| ## |
| # Remove execute permission from all files in the repository. |
| ## |
| echo "Removing execute permission from all files in repository" |
| git ls-files -z | xargs --null --no-run-if-empty chmod -x |
| |
| ## |
| # Enforce certain file types to have execute permission. |
| # The .gitattributes is used as a filter to identify files to add execute |
| # permissions to. Patterns with this "# file permission +x" on the line before |
| # are considered (lines in .gitattributes starting with '#' are ignored). |
| ## |
| awk '/# file permission \+x/{do getline; while ($0 ~ /^#/); print $1}' .gitattributes | |
| while read i ; do |
| echo "Adding execute permission to $i files" |
| git ls-files -z -- "$i" | xargs --null --no-run-if-empty chmod +x |
| done |