Commit f0face5f authored by Alexandru Băluț's avatar Alexandru Băluț

flatpak: Fix pre-commit hook

We want to use both pre-commit.com and our own `pre-commit.hook`. Since
the hooks are installed only when setting up the dev env, we can assume
there is one and error out in the pre-commit.hook. Also, we can call
pre-commit.com directly from there, as that's what pre-commit.com's
wrapper is doing.

Differential Revision: https://phabricator.freedesktop.org/D1945
parent 720c40a4
......@@ -12,7 +12,7 @@ SCRIPT=${BASH_SOURCE[0]:-$0}
&& exit 1
SCRIPT_DIR=$(dirname $(realpath $SCRIPT))
PITIVI_REPO_DIR=$(realpath $SCRIPT_DIR/..)
export PITIVI_REPO_DIR=$(realpath $SCRIPT_DIR/..)
export FLATPAK_ENVPATH=$(realpath $PITIVI_REPO_DIR/..)
export CURRENT_GST=$FLATPAK_ENVPATH
export PATH="$FLATPAK_ENVPATH/bin/:$PATH"
......@@ -22,11 +22,12 @@ alias ptvenv="$PITIVI_REPO_DIR/build/flatpak/pitivi-flatpak -d"
echo "-> Setting up the prefix for the sandbox..."
# This builds the local flatpak repo if it is not yet built.
ptvenv echo Prefix ready
ptvenv echo Setting up the sandbox prefix...
if [ "$?" = "0" ];
then
# Set up environment variables and aliases so configuring, building, etc.
# takes place in the sandbox.
echo Sandbox ready.
echo Setting up aliases etc. so configuring, building takes place in the sandbox...
# Meson sets up the build directory where ninja works.
# Consider using `setup` instead of `meson`, see below.
......@@ -60,7 +61,7 @@ then
# such as git-phab, pre-commit, etc.
source $PITIVI_REPO_DIR/build/flatpak/pyvenv/bin/activate
# Install the pre-commit framework as a git hook, for doing clean commits.
# Install our pre-commit git hook, for doing clean commits.
rm -f .git/hooks/pre-commit
ln -s ../../pre-commit.hook .git/hooks/pre-commit
......
......@@ -17,7 +17,6 @@
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301, USA.
# pylint: disable=missing-docstring,invalid-name
import argparse
import configparser
import json
......@@ -28,7 +27,6 @@ import subprocess
import sys
import tempfile
import venv
from urllib.parse import urlparse
from urllib.request import urlretrieve
......@@ -310,7 +308,7 @@ class FlatpakPackage(FlatpakObject):
def install(self):
if not self.repo:
return False
return
self.flatpak("install", self.repo.name, self.name,
self.branch, show_output=True,
......@@ -318,7 +316,8 @@ class FlatpakPackage(FlatpakObject):
def update(self):
if not self.is_installed():
return self.install()
self.install()
return
self.flatpak("update", self.name, self.branch, show_output=True,
comment="Updating %s" % self.name)
......@@ -504,7 +503,8 @@ class PitiviFlatpak: # pylint: disable=too-many-instance-attributes
def setup_sandbox(self):
"""Creates the sandbox."""
if not os.path.exists(self.prefix) or self.update:
fresh_install = not os.path.exists(self.prefix)
if fresh_install or self.update:
self.install_all()
Console.message("Building Pitivi %s and dependencies in %s",
self.branch, self.prefix)
......@@ -545,16 +545,18 @@ class PitiviFlatpak: # pylint: disable=too-many-instance-attributes
venv_path = os.path.join(self.scriptdir, "pyvenv")
activate_script = os.path.join(venv_path, "bin", "activate")
pip_modules = "git-phab pre-commit git-pylint-commit-hook git_pep8_commit_hook"
if not os.path.isdir(venv_path):
print("Installing development tools in a virtual env.")
print("Setting up a Python virtual env: %s" % venv_path)
venv.create(venv_path, with_pip=True)
print("Installing development tools in a Python virtual env: %s" % venv_path)
subprocess.check_call(
". %s && pip install pre-commit git-phab" % activate_script,
". %s && pip install %s" % (activate_script, pip_modules),
shell=True)
if self.update:
subprocess.check_call(
". %s && pip install -U pre-commit git-phab" % activate_script,
". %s && pip install -U %s" % (activate_script, pip_modules),
shell=True)
if not self.check and not self.update:
......@@ -564,6 +566,7 @@ class PitiviFlatpak: # pylint: disable=too-many-instance-attributes
flatpak_command = ["flatpak", "build", "--socket=x11",
"--socket=session-bus", "--socket=pulseaudio",
"--share=network", "--env=PITIVI_DEVELOPMENT=1",
"--env=PYTHONUSERBASE=/app/",
"--env=CC=ccache gcc",
"--env=CXX=ccache g++", "--device=dri"]
......
#!/usr/bin/env bash
RCFILE=$(git rev-parse --show-toplevel)/docs/pylint.rc
if [ -z "${PITIVI_REPO_DIR}" ]; then
echo "ERROR: You're not in the Pitivi development environment. Run `source bin/pitivi-env` to enter it. See http://developer.pitivi.org/HACKING.html for details."
exit 1
fi
TOPLEVEL=$(git rev-parse --show-toplevel)
RCFILE=$TOPLEVEL/docs/pylint.rc
IGNORED_FILES="
bin/pitivi.in
......@@ -71,23 +77,17 @@ win32/configure.py
win32/pitivi
"
git-pylint-commit-hook --help |grep ignore > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Your git-pylint-commit-hook version can't ignore files that have not been fixed yet"
echo "Use instead our fork:"
echo " $ pip install git+git://github.com/thiblahute/git-pylint-commit-hook.git"
echo ""
elif [ -z $PYLINT ]; then
IGNORE_ARGS=''
for f in $IGNORED_FILES; do
IGNORE_ARGS=""
for f in $IGNORED_FILES; do
IGNORE_ARGS="$IGNORE_ARGS --ignore=$f"
done
echo "Pylint ignoring files:$IGNORED_FILES" | tr "\n" " "
echo
fi
done
echo "Pylint ignoring files:$IGNORED_FILES" | tr "\n" " "
echo
export PYTHONPATH=$TOPLEVEL/pitivi/coptimizations/.libs:$PYTHONPATH
git-pylint-commit-hook --pylint="$TOPLEVEL/build/flatpak/pitivi-flatpak" --pylint-params="-d pylint" --pylintrc=$RCFILE $IGNORE_ARGS --limit=10.0 --suppress-report || exit 1
export PYTHONPATH=$(git rev-parse --show-toplevel)/pitivi/coptimizations/.libs:$PYTHONPATH
git_pep8_commit_hook --pep8-params="--repeat --ignore=E501,E128" || exit 1
git-pylint-commit-hook --pylintrc=$RCFILE $IGNORE_ARGS --limit=10.0 --suppress-report &&\
git_pep8_commit_hook --pep8-params="--repeat --ignore=E501,E128"
pre-commit run --config .pre-commit-config.yaml || exit 1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment