diff --git a/engine/src/flutter/examples/file-browser.sky b/engine/src/flutter/examples/file-browser.sky new file mode 100644 index 0000000000..6d02f84839 --- /dev/null +++ b/engine/src/flutter/examples/file-browser.sky @@ -0,0 +1,41 @@ + + + + + + diff --git a/engine/src/flutter/tools/sky_server b/engine/src/flutter/tools/sky_server index 0fe0fe91ff..da42f1acf3 100755 --- a/engine/src/flutter/tools/sky_server +++ b/engine/src/flutter/tools/sky_server @@ -4,8 +4,9 @@ # found in the LICENSE file. import argparse -import os import cherrypy +import json +import os import staticdirindex @@ -17,29 +18,23 @@ SKY_ROOT = os.path.join(SRC_ROOT, 'sky') GEN_ROOT = os.path.join(SRC_ROOT, BUILD_DIRECTORY, CONFIG_DIRECTORY, 'gen') -# FIXME: This should be replaced by just json and inflated into DOM client-side. def skydir(section="", dir="", path="", **kwargs): - url = "%s%s" % (cherrypy.request.headers.get('Host', ''), - cherrypy.request.path_info) - sky = "" - sky += "" - sky += '
Listing for: ' + url +'
' + if cherrypy.request.params.get('format') is None: + return '' + result = dict() + result['directories'] = [] + result['files'] = [] for _, dir_names, file_names in os.walk(path.rstrip(r"\/")): for dir_name in sorted(dir_names): - sky += "%s/\n" % (dir_name, dir_name) + result["directories"].append(dir_name) del dir_names[:] # limit to one level for file_name in sorted(file_names): - sky += "%s\n" % (file_name, file_name) - return sky + "
" + result["files"].append(file_name) + return json.dumps(result) -# FIXME: This doesn't yet support directory listings. We'll do something like: -# http://tools.cherrypy.org/wiki/staticdirindex -# but have it spit .sky instead of HTML - def main(): parser = argparse.ArgumentParser(description='Sky development server') parser.add_argument('-v', '--verbose', action='store_true',