1#!/usr/bin/python
2"""
3To have a single pip command that uses the specific requirements file use this
4in a shell script for posix OS::
5
6  pip install -r $(select_requirements.py)
7
8On windows, create a bat of cmd file that loads the windows-specific
9requirements directly::
10
11  for /f %%i in ('python select_requirements.py') do (set req_file="%%i")
12  pip install -r %req_file%
13"""
14
15from __future__ import print_function
16
17import os
18import platform
19import struct
20import sys
21
22# major python major_python_versions as python2 and python3
23major_python_versions = tuple(map(str, platform.python_version_tuple()))
24python2 = major_python_versions[0] == '2'
25python3 = major_python_versions[0] == '3'
26
27
28# operating system
29sys_platform = str(sys.platform).lower()
30linux = 'linux' in sys_platform
31windows = 'win32' in sys_platform
32cygwin = 'cygwin' in sys_platform
33solaris = 'sunos' in sys_platform
34macosx = 'darwin' in sys_platform
35posix = 'posix' in os.name.lower()
36
37def select_requirements_file():
38    """
39    Print the path to a requirements file based on some os/arch condition.
40    """
41    if windows:
42        print('requirements/win.txt')
43    elif macosx:
44        print('requirements/mac.txt')
45    elif linux:
46        if python2:
47            print('requirements/linux-py2.txt')
48        elif python3:
49            print('requirements/linux-py3.txt')
50    elif cygwin:
51        print('requirements/cygwin.txt')
52    else:
53        raise Exception('Unsupported OS/platform')
54
55if __name__ == '__main__':
56    select_requirements_file()