summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorGregory Becker <becker33@llnl.gov>2016-05-18 15:13:40 -0700
committerGregory Becker <becker33@llnl.gov>2016-05-18 15:13:40 -0700
commit9f59c128bec12baede054bf54b9afc69b2130da7 (patch)
treea76d26f1601b9859293cdc7426248983a3044e44 /share
parent0fd9cdb861b9b794cc6aa20cd5ecca1989a43820 (diff)
parentd3916707557762abb4268c4f523eac0d222b58b1 (diff)
downloadspack-9f59c128bec12baede054bf54b9afc69b2130da7.tar.gz
spack-9f59c128bec12baede054bf54b9afc69b2130da7.tar.bz2
spack-9f59c128bec12baede054bf54b9afc69b2130da7.tar.xz
spack-9f59c128bec12baede054bf54b9afc69b2130da7.zip
Partial merge of mainline develop
Diffstat (limited to 'share')
-rwxr-xr-xshare/spack/qa/run-flake863
-rwxr-xr-xshare/spack/setup-env.csh16
-rwxr-xr-xshare/spack/setup-env.sh31
3 files changed, 88 insertions, 22 deletions
diff --git a/share/spack/qa/run-flake8 b/share/spack/qa/run-flake8
new file mode 100755
index 0000000000..44eb0167fb
--- /dev/null
+++ b/share/spack/qa/run-flake8
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# This script runs source code style checks on Spack.
+#
+# It should be executed from the top-level directory of the repo,
+# e.g.:
+#
+# share/spack/qa/run-flake8
+#
+# To run it, you'll need to have the Python flake8 installed locally.
+#
+PYTHONPATH=./lib/spack:$PYTHONPATH
+
+flake8="$(which flake8)"
+if [[ ! $flake8 ]]; then
+ echo "ERROR: flake8 is required to run this script."
+ exit 1
+fi
+
+# Check if changed files are flake8 conformant [framework]
+changed=$(git diff --name-only develop... | grep '.py$')
+
+# Add approved style exemptions to the changed packages.
+for file in $changed; do
+ if [[ $file = *package.py ]]; then
+ cp "$file" "$file~"
+
+ # Exempt lines with urls and descriptions from overlong line errors.
+ perl -i -pe 's/^(\s*url\s*=.*)$/\1 # NOQA: ignore=E501/' $file
+ perl -i -pe 's/^(\s*version\(.*\).*)$/\1 # NOQA: ignore=E501/' $file
+ perl -i -pe 's/^(\s*variant\(.*\).*)$/\1 # NOQA: ignore=E501/' $file
+
+ # Exempt '@when' decorated functions from redefinition errors.
+ perl -i -pe 's/^(\s*\@when\(.*\).*)$/\1 # NOQA: ignore=F811/' $file
+ fi
+done
+
+return_code=0
+if [[ $changed ]]; then
+ echo =======================================================
+ echo flake8: running flake8 code checks on spack.
+ echo
+ echo Modified files:
+ echo $changed | perl -pe 's/^/ /;s/ +/\n /g'
+ echo =======================================================
+ if flake8 --format pylint $changed; then
+ echo "Flake8 checks were clean."
+ else
+ echo "Flake8 found errors."
+ return_code=1
+ fi
+else
+ echo No core framework files modified.
+fi
+
+# Restore original package files after modifying them.
+for file in $changed; do
+ if [[ $file = *package.py ]]; then
+ mv "${file}~" "${file}"
+ fi
+done
+
+exit $return_code
diff --git a/share/spack/setup-env.csh b/share/spack/setup-env.csh
index 42d8c42726..b960c21459 100755
--- a/share/spack/setup-env.csh
+++ b/share/spack/setup-env.csh
@@ -1,26 +1,26 @@
##############################################################################
-# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
-# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# 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) version 2.1 dated February 1999.
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
#
# 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 terms and
-# conditions of the GNU General Public License for more details.
+# conditions of the GNU Lesser General Public License for more details.
#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
#
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 586a5b836b..8aa259cf15 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -1,28 +1,29 @@
##############################################################################
-# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
-# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# 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) version 2.1 dated February 1999.
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
#
# 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 terms and
-# conditions of the GNU General Public License for more details.
+# conditions of the GNU Lesser General Public License for more details.
#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
+########################################################################
#
# This file is part of Spack and sets up the spack environment for
# bash and zsh. This includes dotkit support, module support, and
@@ -30,7 +31,6 @@
#
# . /path/to/spack/share/spack/setup-env.sh
#
-
########################################################################
# This is a wrapper around the spack command that forwards calls to
# 'spack use' and 'spack unuse' to shell functions. This in turn
@@ -41,7 +41,7 @@
# commands. This allows the user to use packages without knowing all
# their installation details.
#
-# e.g., rather than requring a full spec for libelf, the user can type:
+# e.g., rather than requiring a full spec for libelf, the user can type:
#
# spack use libelf
#
@@ -84,7 +84,10 @@ function spack {
if [ "$_sp_arg" = "-h" ]; then
command spack cd -h
else
- cd $(spack location $_sp_arg "$@")
+ LOC="$(spack location $_sp_arg "$@")"
+ if [[ -d "$LOC" ]] ; then
+ cd "$LOC"
+ fi
fi
return
;;
@@ -110,11 +113,11 @@ function spack {
unuse $_sp_module_args $_sp_full_spec
fi ;;
"load")
- if _sp_full_spec=$(command spack $_sp_flags module find dotkit $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module find tcl $_sp_spec); then
module load $_sp_module_args $_sp_full_spec
fi ;;
"unload")
- if _sp_full_spec=$(command spack $_sp_flags module find dotkit $_sp_spec); then
+ if _sp_full_spec=$(command spack $_sp_flags module find tcl $_sp_spec); then
module unload $_sp_module_args $_sp_full_spec
fi ;;
esac
@@ -141,7 +144,7 @@ function _spack_pathadd {
fi
# Do the actual prepending here.
- eval "_pa_oldvalue=\$${_pa_varname}"
+ eval "_pa_oldvalue=\${${_pa_varname}:-}"
if [ -d "$_pa_new_path" ] && [[ ":$_pa_oldvalue:" != *":$_pa_new_path:"* ]]; then
if [ -n "$_pa_oldvalue" ]; then