Project

General

Profile

« Previous | Next » 

Revision 04cc161c

Added by David Sorber over 10 years ago

Adding configuration for saga and compeltely unrelated preproc script.

View differences:

configs/saga/main.conf
<VirtualHost *:80>
Redirect permanent / https://10.0.0.3
</VirtualHost>
<VirtualHost _default_:443>
ServerName https://10.0.0.3:443
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
Alias /htdocs /var/htdocs
<Directory /var/htdocs>
Require all granted
</Directory>
#ErrorDocument 403 /error_pages/404.html
#ErrorDocument 404 /error_pages/404.html
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/saga.crt
SSLCertificateKeyFile /etc/apache2/ssl/saga.key
SSLProtocol -all +TLSv1.2
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
</VirtualHost>
configs/saga/saga.crt
-----BEGIN CERTIFICATE-----
MIIFyzCCA7OgAwIBAgIJAPQks25IlADLMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJNRDEUMBIGA1UEBwwLVGFrb21hIFBhcmsxGjAYBgNV
BAoMEVdheW5lIEVudGVycHJpc2VzMR8wHQYDVQQLDBZFbmdpbmVlcmluZyBEZXBh
cnRtZW50MQ0wCwYDVQQDDARzYWdhMB4XDTE2MDIwMTIyNTYzNVoXDTIxMDEzMDIy
NTYzNVowfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1EMRQwEgYDVQQHDAtUYWtv
bWEgUGFyazEaMBgGA1UECgwRV2F5bmUgRW50ZXJwcmlzZXMxHzAdBgNVBAsMFkVu
Z2luZWVyaW5nIERlcGFydG1lbnQxDTALBgNVBAMMBHNhZ2EwggIiMA0GCSqGSIb3
DQEBAQUAA4ICDwAwggIKAoICAQCtEQ0jIOV1/pBW4LThRqR2H02eayhZ5IRKhNWz
C4ToGyyYXU8MQresByYEjSsjaLsFw2vyZOD19kNF634GsSgu8PALpCnoLeabXrHQ
hxfFplHUGjZMSS2kspcKkcUjoPWbnanzeNzH2Ty3opfa5TivlLiPxDxSQ8X+BJRg
/2nMe2i+islYQvaFphyRAM6wq8UglT8D++28qXYV4TKUI8ie1k/6RqHnT+dYqm3+
TycwYuhWPA0TyaVsddyBSvr0/PcBjTnjuhdzVpO3kJFdzwjVNyVJObVZZhgNfBjW
Ps6eAdL6JPL++h4Rh6zIXFc/CwZDf/uBOIMJXsED3sWxtoKqWDZkatApMABq2Lll
s5XYdtqTS73iFJKnh1YnGz5In7Kb00pHdPsFmKtOA4QN0H5K+LlGLroKFjXtgU55
rjBnQ8zQpLkdwo0CUUDbFYaa1T/Zb4wzzyqqGf7wa1L6689Kd6R2nQ/ObwTpW/s4
VriCfwtkqJAUjMEjLpdu/twHaOOqc0X+rJzAJcYdvlCTMb8Qq6yRifkPHhM7YqZ5
c2TbxLodN8p5mY5UsYM4EI9AY1YI70+oy2EBj2mfyx1crYIcHTInK5y3xgH6eysW
3/dYxXhoUABUb1H95FjV5oQWY7IrqCtuPWv2TOypbQM1apP3QHxps0ggkBMkjVCB
ug4fdQIDAQABo1AwTjAdBgNVHQ4EFgQUbBYC0TjzkUHjYad05m/FBYbQEX4wHwYD
VR0jBBgwFoAUbBYC0TjzkUHjYad05m/FBYbQEX4wDAYDVR0TBAUwAwEB/zANBgkq
hkiG9w0BAQsFAAOCAgEATxf7eFh6AjxfqCevRs4PJ3Z2N1x1vOSGpH/prkRVID/g
6ef2vXJkodAhhp8W+tI2r3EIZ5A1URbbZ7nRytnxZHz1HWn+YjN35EFryEaCiUwq
B3PJITe/mVXmmp6DP34sXOjiBNK5Qaz11pE7uSiS6wxbAdUuigfLuwk65r8rRIQc
an6Tqesr80zpUic9szsQo00nPcBxVy4CB6BzEUpeCCiFZFYM2zxYTllnTQCWQLmJ
Gc/taKNHxRazbJaiuzssuHqsOzThsw+Nf1Tzx3smX5SiuytrtaNKNKoNstv+mEX9
JJreBSsAhnYBxJegmfWRQArMrQzhWQxQJnCmV0ZVVOFuUk0I7w6s0NRgxH/Pz6Za
wMagA6kREbi57H4ySv0/qQpRHywj0rjaImgKjqGWMpl8nTieUjcJpW7XpRSJd5+l
o4hdwgOMwr9MS74VGB2MkIS0s4Zlkrgia4Ck3OQdpSc0ivYs2G2BkvublIIU77fO
DMS/2RCBBdnerKEj5s3Cux/NRKZ6+oXBOHKPWKuOZeJVmPG1ZefOwNpEEBLIxMHp
6rNDBq5FqUzfMpip0hbCqd9bP10kmh68I+jgtGXgs0JvUSTH1fnfzt46wrcEbwDk
AjgLR1HjbDjM6YBilUMJ4/9Nwq3Tm9Xd6VZyyI3RAIPdtA1DDe7XxEZU31OHG9k=
-----END CERTIFICATE-----
configs/saga/saga.key
-----BEGIN PRIVATE KEY-----
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
Ey17uwxmU+OXqtN8ya06/K8Hy5gSnQ==
-----END PRIVATE KEY-----
software/misc/preproc.py
import sys
from clang.cindex import Config
from clang.cindex import CursorKind
from clang.cindex import Index
from clang.cindex import TranslationUnit
# Set these according to the location and version of libclang on your system
LIBCLANG_PATH = '/usr/lib/llvm-3.4/lib'
LIBCLANG_NAME = 'libclang-3.4.so'
def display_node(node):
""" A helper function to pretty print the particulars of the passed in
Cursor object
"""
start_line = node.extent.start.line
start_col = node.extent.start.column
end_line = node.extent.end.line
end_col = node.extent.end.column
print '{:s} ({:d}:{:d} - {:d}:{:d})'.format(node.displayname,
start_line, start_col,
end_line, end_col)
def find_function_calls(node):
""" A recursive function call to find all function calls that are children
of the passed in Cursor object
"""
results = []
for child_node in node.get_children():
if child_node.kind == CursorKind.CALL_EXPR:
results.append(child_node)
else:
results.extend(find_function_calls(child_node))
return results
def main():
""" This is a very simple utility that uses the Clang compiler frontend
to parse a C source file and return a list of function declarations within
that file along with the lines on which each declaration starts and ends.
"""
if len(sys.argv) < 2:
print 'ERROR: not enough arguments provided\n'
print 'USAGE: python ddc_preproc.py <file.c>'
return -1
# Configure the library (not sure why this has to be done manually)
Config.set_library_path(LIBCLANG_PATH)
Config.set_library_file(LIBCLANG_NAME)
# Build the TU from the passed file argument
source_file = sys.argv[1]
tu = TranslationUnit.from_source(source_file)
# Loop through all of the children nodes and extract function definitions
# along with their start and end lines from the specified source file
print 'Function declarations:'
print '-' * 80
main_func = None
for child in tu.cursor.get_children():
if str(child.location.file) == source_file and \
child.kind == CursorKind.FUNCTION_DECL:
# Store a reference to the main function
if child.spelling == 'main':
main_func = child
display_node(child)
print '\n'
# Find all function calls originating from the main function
print 'Function calls:'
print '-' * 80
for child in find_function_calls(main_func):
display_node(child)
if __name__ == '__main__':
sys.exit(main())

Also available in: Unified diff