summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/ack/package.py
diff options
context:
space:
mode:
authorGeorge Hartzell <hartzell@alerce.com>2016-07-25 15:08:12 -0400
committerGeorge Hartzell <hartzell@alerce.com>2016-08-02 11:11:05 -0400
commit63121a0c4982bb163b064a4b97fbf820f5179be3 (patch)
tree69596364b1efc6101e1d973e311ffd70fa3d45c7 /var/spack/repos/builtin/packages/ack/package.py
parentbb5dd49206e98f066d211b6a0f5a408b209ef2aa (diff)
downloadspack-63121a0c4982bb163b064a4b97fbf820f5179be3.tar.gz
spack-63121a0c4982bb163b064a4b97fbf820f5179be3.tar.bz2
spack-63121a0c4982bb163b064a4b97fbf820f5179be3.tar.xz
spack-63121a0c4982bb163b064a4b97fbf820f5179be3.zip
Add package for ack
Add a package for [ack](http://beyondgrep.com/install/). Simply install the fatpacked script. It uses '#!/usr/bin/env perl' and it very much not choosy about what perl it needs. For now just trust that there's one available, perhaps someday we can/should uncomment the depends_on('perl'). Follows the methodolgy I used in nextflow. Has the same uninstall/install problem that nextflow has, there is an issue in progress for that: https://github.com/LLNL/spack/issues/1308. Tested on CentOS7.
Diffstat (limited to 'var/spack/repos/builtin/packages/ack/package.py')
-rw-r--r--var/spack/repos/builtin/packages/ack/package.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py
new file mode 100644
index 0000000000..8c97e03456
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ack/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# 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 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 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
+##############################################################################
+from spack import *
+import os
+import re
+
+
+class Ack(Package):
+ """ack 2.14 is a tool like grep, optimized for programmers.
+
+ Designed for programmers with large heterogeneous trees of
+ source code, ack is written purely in portable Perl 5 and takes
+ advantage of the power of Perl's regular expressions."""
+
+ homepage = "http://beyondgrep.com/"
+ url = "http://beyondgrep.com/ack-2.14-single-file"
+
+ version('2.14', 'e74150a1609d28a70b450ef9cc2ed56b', expand=False)
+
+ # trust that there's a system perl for now, but perhaps someday we
+ # should:
+ # depends_on('perl')
+
+ def unpack(self):
+ pass
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ # find the file named like ack-2.14-single-file in a version
+ # independent manner (there should be only one )and install it
+ # as `ack`.
+ for f in os.listdir('.'):
+ if re.match('ack-\d*\.\d*-single-file', f):
+ install(f, join_path(prefix.bin, "ack"))
+ set_executable(join_path(prefix.bin, "ack"))