summaryrefslogtreecommitdiff
path: root/scripts/ac_source_server
blob: d7fb0f35257f169cdcb1aa314026c7486498c473 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/python

# A minimal Web server to provide local source tarballs to AstroConda package
# builds, using the same hostname alias ("astroconda-source") across sites.
#
# To get this working:
# - Define an "astroconda-source" alias for the host where the local tarballs
#   are located.
# - Place an SSL certificate file, "astroconda.pem", in the same directory as
#   the source tarballs.
# - Start this script in the directory containing the source tarballs.
# - Point each client build machine to a copy of the SSL certificate like so:
#     conda config --set ssl_verify /path/to/astroconda.pem.

import BaseHTTPServer
import SimpleHTTPServer
import ssl

# It seems common practice to use port 4443 for unprivileged HTTPS services but
# 4440 is unassigned and less likely to conflict with any other HTTPS service:
port=4440

httpd = BaseHTTPServer.HTTPServer(
    ('', port), SimpleHTTPServer.SimpleHTTPRequestHandler
)

httpd.socket = ssl.wrap_socket(
    httpd.socket,
    certfile='astroconda.pem',    # cert. kept in CWD with source tarballs
    server_side=True
)

httpd.serve_forever()