1#!/usr/bin/env python2 2 3import sys 4import os 5import argparse 6 7ROOT = HERE = os.path.abspath(os.path.dirname(__file__)) 8READIES = os.path.join(ROOT, "deps/readies") 9sys.path.insert(0, READIES) 10import paella 11 12#---------------------------------------------------------------------------------------------- 13 14class RediSearchSetup(paella.Setup): 15 def __init__(self, nop=False): 16 paella.Setup.__init__(self, nop) 17 18 def common_first(self): 19 self.install_downloaders() 20 self.pip_install("wheel") 21 self.pip_install("setuptools --upgrade") 22 23 self.run("%s/bin/enable-utf8" % READIES) 24 self.install("git rsync") 25 26 def debian_compat(self): 27 self.install("libatomic1") 28 self.run("%s/bin/getgcc" % READIES) 29 30 def redhat_compat(self): 31 self.install("redhat-lsb-core") 32 self.install("libatomic") 33 34 self.run("%s/bin/getgcc --modern" % READIES) 35 36 # fix setuptools 37 self.pip_install("-IU --force-reinstall setuptools") 38 39 def archlinux(self): 40 self.install("gcc-libs") 41 42 def fedora(self): 43 self.install("libatomic") 44 self.run("%s/bin/getgcc" % READIES) 45 46 def macos(self): 47 self.install_gnu_utils() 48 self.install("pkg-config") 49 50 # for now depending on redis from brew, it's version6 with TLS. 51 self.run("{PYTHON} {READIES}/bin/getredis -v 6 --force".format(PYTHON=self.python, READIES=READIES)) 52 53 def common_last(self): 54 self.run("{PYTHON} {READIES}/bin/getcmake --usr".format(PYTHON=self.python, READIES=READIES)) 55 self.run("{PYTHON} {READIES}/bin/getrmpytools --reinstall".format(PYTHON=self.python, READIES=READIES)) 56 if self.dist != "arch": 57 self.install("lcov") 58 else: 59 self.install("lcov-git", aur=True) 60 self.pip_install("pudb awscli") 61 62 self.pip_install("-r %s/tests/pytests/requirements.txt" % ROOT) 63 64#---------------------------------------------------------------------------------------------- 65 66parser = argparse.ArgumentParser(description='Set up system for build.') 67parser.add_argument('-n', '--nop', action="store_true", help='no operation') 68args = parser.parse_args() 69 70RediSearchSetup(nop = args.nop).setup() 71