From 4f01edb9230f58ff84b0dd892c931ec8ac9aad55 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Tue, 13 Sep 2022 12:56:08 +0200 Subject: [PATCH] move src out of srv, clean up default.nix and Makefile --- Makefile | 28 ++++----- default.nix | 50 ++++++++++++--- {srv/src => src}/cfg/cfg.go | 0 {srv/src => src}/cfg/cfg_test.go | 0 {srv/src => src}/cfg/data_dir.go | 0 {srv/src => src}/cfg/mediocre_blog.go | 0 {srv/src => src}/cmd/hash-password/main.go | 0 .../src => src}/cmd/load-test-data/galaxy.jpg | Bin {srv/src => src}/cmd/load-test-data/main.go | 0 .../cmd/load-test-data/test-data.yml | 0 {srv/src => src}/cmd/mailinglist-cli/main.go | 0 {srv/src => src}/cmd/mediocre-blog/main.go | 0 {srv/src => src}/go.mod | 0 {srv/src => src}/go.sum | 0 {srv/src => src}/http/api.go | 0 {srv/src => src}/http/apiutil/apiutil.go | 0 {srv/src => src}/http/assets.go | 0 {srv/src => src}/http/auth.go | 0 {srv/src => src}/http/auth_test.go | 0 {srv/src => src}/http/csrf.go | 0 {srv/src => src}/http/drafts.go | 0 {srv/src => src}/http/feed.go | 0 {srv/src => src}/http/index.go | 0 {srv/src => src}/http/mailinglist.go | 0 {srv/src => src}/http/middleware.go | 0 {srv/src => src}/http/posts.go | 0 {srv/src => src}/http/pow.go | 0 {srv/src => src}/http/static/api.js | 0 .../component-oriented-design/v1/main.go | 0 .../component-oriented-design/v1/main_test.go | 0 .../component-oriented-design/v2/main.go | 0 .../component-oriented-design/v3/main.go | 0 {srv/src => src}/http/static/markov/Makefile | 0 .../src => src}/http/static/markov/markov.nix | 0 {srv/src => src}/http/static/mediocre.css | 0 {srv/src => src}/http/static/new.css | 0 {srv/src => src}/http/static/solvePow.js | 0 .../http/static/trading-in-the-rain/CW.js | 0 .../static/trading-in-the-rain/Distributor.js | 0 .../trading-in-the-rain/MIDI.js/LICENSE.txt | 0 .../MIDI.js/inc/shim/Base64.js | 0 .../MIDI.js/inc/shim/Base64binary.js | 0 .../MIDI.js/inc/shim/WebAudioAPI.js | 0 .../MIDI.js/inc/shim/WebMIDIAPI.js | 0 .../MIDI.js/js/midi/audioDetect.js | 0 .../trading-in-the-rain/MIDI.js/js/midi/gm.js | 0 .../MIDI.js/js/midi/loader.js | 0 .../MIDI.js/js/midi/player.js | 0 .../MIDI.js/js/midi/plugin.audiotag.js | 0 .../MIDI.js/js/midi/plugin.webaudio.js | 0 .../MIDI.js/js/midi/plugin.webmidi.js | 0 .../MIDI.js/js/midi/synesthesia.js | 0 .../MIDI.js/js/util/dom_request_script.js | 0 .../MIDI.js/js/util/dom_request_xhr.js | 0 .../static/trading-in-the-rain/MusicBox.js | 0 .../static/trading-in-the-rain/RainCanvas.js | 0 .../trading-in-the-rain/SeriesComposer.js | 0 .../http/static/trading-in-the-rain/key.gpg | Bin .../http/static/trading-in-the-rain/main.js | 0 .../soundfont/acoustic_grand_piano-mp3.js | 0 .../soundfont/acoustic_grand_piano-mp3/A0.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A7.mp3 | Bin .../acoustic_grand_piano-mp3/Ab1.mp3 | Bin .../acoustic_grand_piano-mp3/Ab2.mp3 | Bin .../acoustic_grand_piano-mp3/Ab3.mp3 | Bin .../acoustic_grand_piano-mp3/Ab4.mp3 | Bin .../acoustic_grand_piano-mp3/Ab5.mp3 | Bin .../acoustic_grand_piano-mp3/Ab6.mp3 | Bin .../acoustic_grand_piano-mp3/Ab7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B0.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B7.mp3 | Bin .../acoustic_grand_piano-mp3/Bb0.mp3 | Bin .../acoustic_grand_piano-mp3/Bb1.mp3 | Bin .../acoustic_grand_piano-mp3/Bb2.mp3 | Bin .../acoustic_grand_piano-mp3/Bb3.mp3 | Bin .../acoustic_grand_piano-mp3/Bb4.mp3 | Bin .../acoustic_grand_piano-mp3/Bb5.mp3 | Bin .../acoustic_grand_piano-mp3/Bb6.mp3 | Bin .../acoustic_grand_piano-mp3/Bb7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C8.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D7.mp3 | Bin .../acoustic_grand_piano-mp3/Db1.mp3 | Bin .../acoustic_grand_piano-mp3/Db2.mp3 | Bin .../acoustic_grand_piano-mp3/Db3.mp3 | Bin .../acoustic_grand_piano-mp3/Db4.mp3 | Bin .../acoustic_grand_piano-mp3/Db5.mp3 | Bin .../acoustic_grand_piano-mp3/Db6.mp3 | Bin .../acoustic_grand_piano-mp3/Db7.mp3 | Bin .../acoustic_grand_piano-mp3/Db8.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E7.mp3 | Bin .../acoustic_grand_piano-mp3/Eb1.mp3 | Bin .../acoustic_grand_piano-mp3/Eb2.mp3 | Bin .../acoustic_grand_piano-mp3/Eb3.mp3 | Bin .../acoustic_grand_piano-mp3/Eb4.mp3 | Bin .../acoustic_grand_piano-mp3/Eb5.mp3 | Bin .../acoustic_grand_piano-mp3/Eb6.mp3 | Bin .../acoustic_grand_piano-mp3/Eb7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G7.mp3 | Bin .../acoustic_grand_piano-mp3/Gb1.mp3 | Bin .../acoustic_grand_piano-mp3/Gb2.mp3 | Bin .../acoustic_grand_piano-mp3/Gb3.mp3 | Bin .../acoustic_grand_piano-mp3/Gb4.mp3 | Bin .../acoustic_grand_piano-mp3/Gb5.mp3 | Bin .../acoustic_grand_piano-mp3/Gb6.mp3 | Bin .../acoustic_grand_piano-mp3/Gb7.mp3 | Bin .../soundfont/acoustic_grand_piano-ogg.js | 0 {srv/src => src}/http/static/utils.js | 0 .../http/static/viz/1/cljs/core.cljs | 0 .../http/static/viz/1/cljs/core.js | 0 .../http/static/viz/1/cljs/core.js.map | 0 .../http/static/viz/1/cljs_deps.js | 0 .../http/static/viz/1/clojure/set.cljs | 0 .../static/viz/1/clojure/set.cljs.cache.edn | 0 .../http/static/viz/1/clojure/set.js | 0 .../http/static/viz/1/clojure/set.js.map | 0 .../http/static/viz/1/clojure/string.cljs | 0 .../viz/1/clojure/string.cljs.cache.edn | 0 .../http/static/viz/1/clojure/string.js | 0 .../http/static/viz/1/clojure/string.js.map | 0 .../http/static/viz/1/goog/array/array.js | 0 .../http/static/viz/1/goog/asserts/asserts.js | 0 .../http/static/viz/1/goog/base.js | 0 .../viz/1/goog/debug/entrypointregistry.js | 0 .../http/static/viz/1/goog/debug/error.js | 0 .../http/static/viz/1/goog/deps.js | 0 .../viz/1/goog/disposable/disposable.js | 0 .../viz/1/goog/disposable/idisposable.js | 0 .../static/viz/1/goog/dom/browserfeature.js | 0 .../http/static/viz/1/goog/dom/dom.js | 0 .../http/static/viz/1/goog/dom/nodetype.js | 0 .../http/static/viz/1/goog/dom/safe.js | 0 .../http/static/viz/1/goog/dom/tagname.js | 0 .../http/static/viz/1/goog/dom/tags.js | 0 .../static/viz/1/goog/events/browserevent.js | 0 .../viz/1/goog/events/browserfeature.js | 0 .../http/static/viz/1/goog/events/event.js | 0 .../http/static/viz/1/goog/events/eventid.js | 0 .../http/static/viz/1/goog/events/events.js | 0 .../static/viz/1/goog/events/eventtype.js | 0 .../static/viz/1/goog/events/listenable.js | 0 .../http/static/viz/1/goog/events/listener.js | 0 .../static/viz/1/goog/events/listenermap.js | 0 .../http/static/viz/1/goog/fs/url.js | 0 .../http/static/viz/1/goog/html/safehtml.js | 0 .../http/static/viz/1/goog/html/safescript.js | 0 .../http/static/viz/1/goog/html/safestyle.js | 0 .../static/viz/1/goog/html/safestylesheet.js | 0 .../http/static/viz/1/goog/html/safeurl.js | 0 .../viz/1/goog/html/trustedresourceurl.js | 0 .../viz/1/goog/html/uncheckedconversions.js | 0 .../http/static/viz/1/goog/i18n/bidi.js | 0 .../viz/1/goog/labs/useragent/browser.js | 0 .../viz/1/goog/labs/useragent/engine.js | 0 .../viz/1/goog/labs/useragent/platform.js | 0 .../static/viz/1/goog/labs/useragent/util.js | 0 .../http/static/viz/1/goog/math/coordinate.js | 0 .../http/static/viz/1/goog/math/integer.js | 0 .../http/static/viz/1/goog/math/long.js | 0 .../http/static/viz/1/goog/math/math.js | 0 .../http/static/viz/1/goog/math/size.js | 0 .../http/static/viz/1/goog/object/object.js | 0 .../http/static/viz/1/goog/reflect/reflect.js | 0 .../http/static/viz/1/goog/string/const.js | 0 .../http/static/viz/1/goog/string/string.js | 0 .../static/viz/1/goog/string/stringbuffer.js | 0 .../static/viz/1/goog/string/stringformat.js | 0 .../static/viz/1/goog/string/typedstring.js | 0 .../static/viz/1/goog/useragent/useragent.js | 0 .../http/static/viz/1/processing.js | 0 .../http/static/viz/1/quil/core.cljc | 0 .../static/viz/1/quil/core.cljc.cache.edn | 0 .../http/static/viz/1/quil/core.js | 0 .../http/static/viz/1/quil/core.js.map | 0 .../http/static/viz/1/quil/middleware.cljc | 0 .../viz/1/quil/middleware.cljc.cache.edn | 0 .../http/static/viz/1/quil/middleware.js | 0 .../http/static/viz/1/quil/middleware.js.map | 0 .../quil/middlewares/deprecated_options.cljc | 0 .../deprecated_options.cljc.cache.edn | 0 .../1/quil/middlewares/deprecated_options.js | 0 .../middlewares/deprecated_options.js.map | 0 .../viz/1/quil/middlewares/fun_mode.cljc | 0 .../quil/middlewares/fun_mode.cljc.cache.edn | 0 .../static/viz/1/quil/middlewares/fun_mode.js | 0 .../viz/1/quil/middlewares/fun_mode.js.map | 0 .../viz/1/quil/middlewares/navigation_2d.cljc | 0 .../middlewares/navigation_2d.cljc.cache.edn | 0 .../viz/1/quil/middlewares/navigation_2d.js | 0 .../1/quil/middlewares/navigation_2d.js.map | 0 .../viz/1/quil/middlewares/navigation_3d.cljc | 0 .../middlewares/navigation_3d.cljc.cache.edn | 0 .../viz/1/quil/middlewares/navigation_3d.js | 0 .../1/quil/middlewares/navigation_3d.js.map | 0 .../http/static/viz/1/quil/sketch.cljs | 0 .../static/viz/1/quil/sketch.cljs.cache.edn | 0 .../http/static/viz/1/quil/sketch.js | 0 .../http/static/viz/1/quil/sketch.js.map | 0 .../http/static/viz/1/quil/util.cljc | 0 .../static/viz/1/quil/util.cljc.cache.edn | 0 .../http/static/viz/1/quil/util.js | 0 .../http/static/viz/1/quil/util.js.map | 0 .../http/static/viz/1/viz/core.cljs | 0 .../http/static/viz/1/viz/core.cljs.cache.edn | 0 .../src => src}/http/static/viz/1/viz/core.js | 0 .../http/static/viz/1/viz/core.js.map | 0 .../http/static/viz/1/viz/forest.cljs | 0 .../static/viz/1/viz/forest.cljs.cache.edn | 0 .../http/static/viz/1/viz/forest.js | 0 .../http/static/viz/1/viz/forest.js.map | 0 .../http/static/viz/1/viz/ghost.cljs | 0 .../static/viz/1/viz/ghost.cljs.cache.edn | 0 .../http/static/viz/1/viz/ghost.js | 0 .../http/static/viz/1/viz/ghost.js.map | 0 .../http/static/viz/1/viz/grid.cljs | 0 .../http/static/viz/1/viz/grid.cljs.cache.edn | 0 .../src => src}/http/static/viz/1/viz/grid.js | 0 .../http/static/viz/1/viz/grid.js.map | 0 .../http/static/viz/2/cljs/core.cljs | 0 .../http/static/viz/2/cljs/core.js | 0 .../http/static/viz/2/cljs/core.js.map | 0 .../2/cljs/user/debug9D984AE.cljs.cache.json | 0 .../static/viz/2/cljs/user/debug9D984AE.js | 0 .../viz/2/cljs/user/debug9D984AE.js.map | 0 .../http/static/viz/2/cljs_deps.js | 0 .../http/static/viz/2/cljsc_opts.edn | 0 .../http/static/viz/2/clojure/set.cljs | 0 .../static/viz/2/clojure/set.cljs.cache.json | 0 .../http/static/viz/2/clojure/set.js | 0 .../http/static/viz/2/clojure/set.js.map | 0 .../http/static/viz/2/clojure/string.cljs | 0 .../viz/2/clojure/string.cljs.cache.json | 0 .../http/static/viz/2/clojure/string.js | 0 .../http/static/viz/2/clojure/string.js.map | 0 .../http/static/viz/2/goog/array/array.js | 0 .../http/static/viz/2/goog/asserts/asserts.js | 0 .../http/static/viz/2/goog/base.js | 0 .../viz/2/goog/debug/entrypointregistry.js | 0 .../http/static/viz/2/goog/debug/error.js | 0 .../http/static/viz/2/goog/deps.js | 0 .../viz/2/goog/disposable/disposable.js | 0 .../viz/2/goog/disposable/idisposable.js | 0 .../http/static/viz/2/goog/dom/asserts.js | 0 .../static/viz/2/goog/dom/browserfeature.js | 0 .../http/static/viz/2/goog/dom/dom.js | 0 .../http/static/viz/2/goog/dom/htmlelement.js | 0 .../http/static/viz/2/goog/dom/nodetype.js | 0 .../http/static/viz/2/goog/dom/safe.js | 0 .../http/static/viz/2/goog/dom/tagname.js | 0 .../http/static/viz/2/goog/dom/tags.js | 0 .../static/viz/2/goog/events/browserevent.js | 0 .../viz/2/goog/events/browserfeature.js | 0 .../http/static/viz/2/goog/events/event.js | 0 .../http/static/viz/2/goog/events/eventid.js | 0 .../http/static/viz/2/goog/events/events.js | 0 .../static/viz/2/goog/events/eventtype.js | 0 .../static/viz/2/goog/events/listenable.js | 0 .../http/static/viz/2/goog/events/listener.js | 0 .../static/viz/2/goog/events/listenermap.js | 0 .../http/static/viz/2/goog/fs/url.js | 0 .../static/viz/2/goog/functions/functions.js | 0 .../http/static/viz/2/goog/html/safehtml.js | 0 .../http/static/viz/2/goog/html/safescript.js | 0 .../http/static/viz/2/goog/html/safestyle.js | 0 .../static/viz/2/goog/html/safestylesheet.js | 0 .../http/static/viz/2/goog/html/safeurl.js | 0 .../viz/2/goog/html/trustedresourceurl.js | 0 .../viz/2/goog/html/uncheckedconversions.js | 0 .../http/static/viz/2/goog/i18n/bidi.js | 0 .../http/static/viz/2/goog/iter/iter.js | 0 .../viz/2/goog/labs/useragent/browser.js | 0 .../viz/2/goog/labs/useragent/engine.js | 0 .../viz/2/goog/labs/useragent/platform.js | 0 .../static/viz/2/goog/labs/useragent/util.js | 0 .../http/static/viz/2/goog/math/coordinate.js | 0 .../http/static/viz/2/goog/math/integer.js | 0 .../http/static/viz/2/goog/math/long.js | 0 .../http/static/viz/2/goog/math/math.js | 0 .../http/static/viz/2/goog/math/size.js | 0 .../http/static/viz/2/goog/object/object.js | 0 .../http/static/viz/2/goog/reflect/reflect.js | 0 .../http/static/viz/2/goog/string/const.js | 0 .../http/static/viz/2/goog/string/string.js | 0 .../static/viz/2/goog/string/stringbuffer.js | 0 .../static/viz/2/goog/string/stringformat.js | 0 .../static/viz/2/goog/string/typedstring.js | 0 .../http/static/viz/2/goog/structs/map.js | 0 .../http/static/viz/2/goog/structs/structs.js | 0 .../http/static/viz/2/goog/uri/uri.js | 0 .../http/static/viz/2/goog/uri/utils.js | 0 .../static/viz/2/goog/useragent/useragent.js | 0 .../http/static/viz/2/process/env.cljs | 0 .../static/viz/2/process/env.cljs.cache.json | 0 .../http/static/viz/2/process/env.js | 0 .../http/static/viz/2/process/env.js.map | 0 .../http/static/viz/2/processing.js | 0 .../http/static/viz/2/quil/core.cljc | 0 .../static/viz/2/quil/core.cljc.cache.json | 0 .../http/static/viz/2/quil/core.js | 0 .../http/static/viz/2/quil/core.js.map | 0 .../http/static/viz/2/quil/middleware.cljc | 0 .../viz/2/quil/middleware.cljc.cache.json | 0 .../http/static/viz/2/quil/middleware.js | 0 .../http/static/viz/2/quil/middleware.js.map | 0 .../quil/middlewares/deprecated_options.cljc | 0 .../deprecated_options.cljc.cache.json | 0 .../2/quil/middlewares/deprecated_options.js | 0 .../middlewares/deprecated_options.js.map | 0 .../viz/2/quil/middlewares/fun_mode.cljc | 0 .../quil/middlewares/fun_mode.cljc.cache.json | 0 .../static/viz/2/quil/middlewares/fun_mode.js | 0 .../viz/2/quil/middlewares/fun_mode.js.map | 0 .../viz/2/quil/middlewares/navigation_2d.cljc | 0 .../middlewares/navigation_2d.cljc.cache.json | 0 .../viz/2/quil/middlewares/navigation_2d.js | 0 .../2/quil/middlewares/navigation_2d.js.map | 0 .../viz/2/quil/middlewares/navigation_3d.cljc | 0 .../middlewares/navigation_3d.cljc.cache.json | 0 .../viz/2/quil/middlewares/navigation_3d.js | 0 .../2/quil/middlewares/navigation_3d.js.map | 0 .../http/static/viz/2/quil/sketch.cljs | 0 .../static/viz/2/quil/sketch.cljs.cache.json | 0 .../http/static/viz/2/quil/sketch.js | 0 .../http/static/viz/2/quil/sketch.js.map | 0 .../http/static/viz/2/quil/util.cljc | 0 .../static/viz/2/quil/util.cljc.cache.json | 0 .../http/static/viz/2/quil/util.js | 0 .../http/static/viz/2/quil/util.js.map | 0 .../http/static/viz/2/viz/core.cljs | 0 .../static/viz/2/viz/core.cljs.cache.json | 0 .../src => src}/http/static/viz/2/viz/core.js | 0 .../http/static/viz/2/viz/core.js.map | 0 .../http/static/viz/2/viz/debug.cljs | 0 .../static/viz/2/viz/debug.cljs.cache.json | 0 .../http/static/viz/2/viz/debug.js | 0 .../http/static/viz/2/viz/debug.js.map | 0 .../http/static/viz/2/viz/dial.cljs | 0 .../static/viz/2/viz/dial.cljs.cache.json | 0 .../src => src}/http/static/viz/2/viz/dial.js | 0 .../http/static/viz/2/viz/dial.js.map | 0 .../http/static/viz/2/viz/forest.cljs | 0 .../static/viz/2/viz/forest.cljs.cache.json | 0 .../http/static/viz/2/viz/forest.js | 0 .../http/static/viz/2/viz/forest.js.map | 0 .../http/static/viz/2/viz/ghost.cljs | 0 .../static/viz/2/viz/ghost.cljs.cache.json | 0 .../http/static/viz/2/viz/ghost.js | 0 .../http/static/viz/2/viz/ghost.js.map | 0 .../http/static/viz/2/viz/grid.cljs | 0 .../static/viz/2/viz/grid.cljs.cache.json | 0 .../src => src}/http/static/viz/2/viz/grid.js | 0 .../http/static/viz/2/viz/grid.js.map | 0 {srv/src => src}/http/static/wtfpl.txt | 0 {srv/src => src}/http/tpl.go | 0 {srv/src => src}/http/tpl/admin.html | 0 {srv/src => src}/http/tpl/assets.html | 0 {srv/src => src}/http/tpl/base.html | 0 {srv/src => src}/http/tpl/draft-posts.html | 0 {srv/src => src}/http/tpl/edit-post.html | 0 {srv/src => src}/http/tpl/finalize.html | 0 {srv/src => src}/http/tpl/follow.html | 0 {srv/src => src}/http/tpl/image.html | 0 {srv/src => src}/http/tpl/index.html | 0 {srv/src => src}/http/tpl/post.html | 0 {srv/src => src}/http/tpl/posts.html | 0 {srv/src => src}/http/tpl/redirect.html | 0 {srv/src => src}/http/tpl/unsubscribe.html | 0 {srv/src => src}/mailinglist/mailer.go | 0 {srv/src => src}/mailinglist/mailinglist.go | 0 {srv/src => src}/mailinglist/store.go | 0 {srv/src => src}/mailinglist/store_test.go | 0 {srv/src => src}/post/asset.go | 0 {srv/src => src}/post/asset_test.go | 0 {srv/src => src}/post/draft_post.go | 0 {srv/src => src}/post/draft_post_test.go | 0 {srv/src => src}/post/post.go | 0 {srv/src => src}/post/post_test.go | 0 {srv/src => src}/post/sql.go | 0 {srv/src => src}/pow/pow.go | 0 {srv/src => src}/pow/pow_test.go | 0 {srv/src => src}/pow/store.go | 0 {srv/src => src}/pow/store_test.go | 0 srv/default.nix | 59 ------------------ srv-dev-env.sh => tmp-dev-env.sh | 5 +- 427 files changed, 59 insertions(+), 83 deletions(-) rename {srv/src => src}/cfg/cfg.go (100%) rename {srv/src => src}/cfg/cfg_test.go (100%) rename {srv/src => src}/cfg/data_dir.go (100%) rename {srv/src => src}/cfg/mediocre_blog.go (100%) rename {srv/src => src}/cmd/hash-password/main.go (100%) rename {srv/src => src}/cmd/load-test-data/galaxy.jpg (100%) rename {srv/src => src}/cmd/load-test-data/main.go (100%) rename {srv/src => src}/cmd/load-test-data/test-data.yml (100%) rename {srv/src => src}/cmd/mailinglist-cli/main.go (100%) rename {srv/src => src}/cmd/mediocre-blog/main.go (100%) rename {srv/src => src}/go.mod (100%) rename {srv/src => src}/go.sum (100%) rename {srv/src => src}/http/api.go (100%) rename {srv/src => src}/http/apiutil/apiutil.go (100%) rename {srv/src => src}/http/assets.go (100%) rename {srv/src => src}/http/auth.go (100%) rename {srv/src => src}/http/auth_test.go (100%) rename {srv/src => src}/http/csrf.go (100%) rename {srv/src => src}/http/drafts.go (100%) rename {srv/src => src}/http/feed.go (100%) rename {srv/src => src}/http/index.go (100%) rename {srv/src => src}/http/mailinglist.go (100%) rename {srv/src => src}/http/middleware.go (100%) rename {srv/src => src}/http/posts.go (100%) rename {srv/src => src}/http/pow.go (100%) rename {srv/src => src}/http/static/api.js (100%) rename {srv/src => src}/http/static/component-oriented-design/v1/main.go (100%) rename {srv/src => src}/http/static/component-oriented-design/v1/main_test.go (100%) rename {srv/src => src}/http/static/component-oriented-design/v2/main.go (100%) rename {srv/src => src}/http/static/component-oriented-design/v3/main.go (100%) rename {srv/src => src}/http/static/markov/Makefile (100%) rename {srv/src => src}/http/static/markov/markov.nix (100%) rename {srv/src => src}/http/static/mediocre.css (100%) rename {srv/src => src}/http/static/new.css (100%) rename {srv/src => src}/http/static/solvePow.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/CW.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/Distributor.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/MusicBox.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/RainCanvas.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/SeriesComposer.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/key.gpg (100%) rename {srv/src => src}/http/static/trading-in-the-rain/main.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 (100%) rename {srv/src => src}/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js (100%) rename {srv/src => src}/http/static/utils.js (100%) rename {srv/src => src}/http/static/viz/1/cljs/core.cljs (100%) rename {srv/src => src}/http/static/viz/1/cljs/core.js (100%) rename {srv/src => src}/http/static/viz/1/cljs/core.js.map (100%) rename {srv/src => src}/http/static/viz/1/cljs_deps.js (100%) rename {srv/src => src}/http/static/viz/1/clojure/set.cljs (100%) rename {srv/src => src}/http/static/viz/1/clojure/set.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/clojure/set.js (100%) rename {srv/src => src}/http/static/viz/1/clojure/set.js.map (100%) rename {srv/src => src}/http/static/viz/1/clojure/string.cljs (100%) rename {srv/src => src}/http/static/viz/1/clojure/string.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/clojure/string.js (100%) rename {srv/src => src}/http/static/viz/1/clojure/string.js.map (100%) rename {srv/src => src}/http/static/viz/1/goog/array/array.js (100%) rename {srv/src => src}/http/static/viz/1/goog/asserts/asserts.js (100%) rename {srv/src => src}/http/static/viz/1/goog/base.js (100%) rename {srv/src => src}/http/static/viz/1/goog/debug/entrypointregistry.js (100%) rename {srv/src => src}/http/static/viz/1/goog/debug/error.js (100%) rename {srv/src => src}/http/static/viz/1/goog/deps.js (100%) rename {srv/src => src}/http/static/viz/1/goog/disposable/disposable.js (100%) rename {srv/src => src}/http/static/viz/1/goog/disposable/idisposable.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/browserfeature.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/dom.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/nodetype.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/safe.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/tagname.js (100%) rename {srv/src => src}/http/static/viz/1/goog/dom/tags.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/browserevent.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/browserfeature.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/event.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/eventid.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/events.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/eventtype.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/listenable.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/listener.js (100%) rename {srv/src => src}/http/static/viz/1/goog/events/listenermap.js (100%) rename {srv/src => src}/http/static/viz/1/goog/fs/url.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/safehtml.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/safescript.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/safestyle.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/safestylesheet.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/safeurl.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/trustedresourceurl.js (100%) rename {srv/src => src}/http/static/viz/1/goog/html/uncheckedconversions.js (100%) rename {srv/src => src}/http/static/viz/1/goog/i18n/bidi.js (100%) rename {srv/src => src}/http/static/viz/1/goog/labs/useragent/browser.js (100%) rename {srv/src => src}/http/static/viz/1/goog/labs/useragent/engine.js (100%) rename {srv/src => src}/http/static/viz/1/goog/labs/useragent/platform.js (100%) rename {srv/src => src}/http/static/viz/1/goog/labs/useragent/util.js (100%) rename {srv/src => src}/http/static/viz/1/goog/math/coordinate.js (100%) rename {srv/src => src}/http/static/viz/1/goog/math/integer.js (100%) rename {srv/src => src}/http/static/viz/1/goog/math/long.js (100%) rename {srv/src => src}/http/static/viz/1/goog/math/math.js (100%) rename {srv/src => src}/http/static/viz/1/goog/math/size.js (100%) rename {srv/src => src}/http/static/viz/1/goog/object/object.js (100%) rename {srv/src => src}/http/static/viz/1/goog/reflect/reflect.js (100%) rename {srv/src => src}/http/static/viz/1/goog/string/const.js (100%) rename {srv/src => src}/http/static/viz/1/goog/string/string.js (100%) rename {srv/src => src}/http/static/viz/1/goog/string/stringbuffer.js (100%) rename {srv/src => src}/http/static/viz/1/goog/string/stringformat.js (100%) rename {srv/src => src}/http/static/viz/1/goog/string/typedstring.js (100%) rename {srv/src => src}/http/static/viz/1/goog/useragent/useragent.js (100%) rename {srv/src => src}/http/static/viz/1/processing.js (100%) rename {srv/src => src}/http/static/viz/1/quil/core.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/core.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/core.js (100%) rename {srv/src => src}/http/static/viz/1/quil/core.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/middleware.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/middleware.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/middleware.js (100%) rename {srv/src => src}/http/static/viz/1/quil/middleware.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/deprecated_options.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/deprecated_options.js (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/deprecated_options.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/fun_mode.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/fun_mode.js (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/fun_mode.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_2d.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_2d.js (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_2d.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_3d.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_3d.js (100%) rename {srv/src => src}/http/static/viz/1/quil/middlewares/navigation_3d.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/sketch.cljs (100%) rename {srv/src => src}/http/static/viz/1/quil/sketch.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/sketch.js (100%) rename {srv/src => src}/http/static/viz/1/quil/sketch.js.map (100%) rename {srv/src => src}/http/static/viz/1/quil/util.cljc (100%) rename {srv/src => src}/http/static/viz/1/quil/util.cljc.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/quil/util.js (100%) rename {srv/src => src}/http/static/viz/1/quil/util.js.map (100%) rename {srv/src => src}/http/static/viz/1/viz/core.cljs (100%) rename {srv/src => src}/http/static/viz/1/viz/core.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/viz/core.js (100%) rename {srv/src => src}/http/static/viz/1/viz/core.js.map (100%) rename {srv/src => src}/http/static/viz/1/viz/forest.cljs (100%) rename {srv/src => src}/http/static/viz/1/viz/forest.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/viz/forest.js (100%) rename {srv/src => src}/http/static/viz/1/viz/forest.js.map (100%) rename {srv/src => src}/http/static/viz/1/viz/ghost.cljs (100%) rename {srv/src => src}/http/static/viz/1/viz/ghost.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/viz/ghost.js (100%) rename {srv/src => src}/http/static/viz/1/viz/ghost.js.map (100%) rename {srv/src => src}/http/static/viz/1/viz/grid.cljs (100%) rename {srv/src => src}/http/static/viz/1/viz/grid.cljs.cache.edn (100%) rename {srv/src => src}/http/static/viz/1/viz/grid.js (100%) rename {srv/src => src}/http/static/viz/1/viz/grid.js.map (100%) rename {srv/src => src}/http/static/viz/2/cljs/core.cljs (100%) rename {srv/src => src}/http/static/viz/2/cljs/core.js (100%) rename {srv/src => src}/http/static/viz/2/cljs/core.js.map (100%) rename {srv/src => src}/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/cljs/user/debug9D984AE.js (100%) rename {srv/src => src}/http/static/viz/2/cljs/user/debug9D984AE.js.map (100%) rename {srv/src => src}/http/static/viz/2/cljs_deps.js (100%) rename {srv/src => src}/http/static/viz/2/cljsc_opts.edn (100%) rename {srv/src => src}/http/static/viz/2/clojure/set.cljs (100%) rename {srv/src => src}/http/static/viz/2/clojure/set.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/clojure/set.js (100%) rename {srv/src => src}/http/static/viz/2/clojure/set.js.map (100%) rename {srv/src => src}/http/static/viz/2/clojure/string.cljs (100%) rename {srv/src => src}/http/static/viz/2/clojure/string.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/clojure/string.js (100%) rename {srv/src => src}/http/static/viz/2/clojure/string.js.map (100%) rename {srv/src => src}/http/static/viz/2/goog/array/array.js (100%) rename {srv/src => src}/http/static/viz/2/goog/asserts/asserts.js (100%) rename {srv/src => src}/http/static/viz/2/goog/base.js (100%) rename {srv/src => src}/http/static/viz/2/goog/debug/entrypointregistry.js (100%) rename {srv/src => src}/http/static/viz/2/goog/debug/error.js (100%) rename {srv/src => src}/http/static/viz/2/goog/deps.js (100%) rename {srv/src => src}/http/static/viz/2/goog/disposable/disposable.js (100%) rename {srv/src => src}/http/static/viz/2/goog/disposable/idisposable.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/asserts.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/browserfeature.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/dom.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/htmlelement.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/nodetype.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/safe.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/tagname.js (100%) rename {srv/src => src}/http/static/viz/2/goog/dom/tags.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/browserevent.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/browserfeature.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/event.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/eventid.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/events.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/eventtype.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/listenable.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/listener.js (100%) rename {srv/src => src}/http/static/viz/2/goog/events/listenermap.js (100%) rename {srv/src => src}/http/static/viz/2/goog/fs/url.js (100%) rename {srv/src => src}/http/static/viz/2/goog/functions/functions.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/safehtml.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/safescript.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/safestyle.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/safestylesheet.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/safeurl.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/trustedresourceurl.js (100%) rename {srv/src => src}/http/static/viz/2/goog/html/uncheckedconversions.js (100%) rename {srv/src => src}/http/static/viz/2/goog/i18n/bidi.js (100%) rename {srv/src => src}/http/static/viz/2/goog/iter/iter.js (100%) rename {srv/src => src}/http/static/viz/2/goog/labs/useragent/browser.js (100%) rename {srv/src => src}/http/static/viz/2/goog/labs/useragent/engine.js (100%) rename {srv/src => src}/http/static/viz/2/goog/labs/useragent/platform.js (100%) rename {srv/src => src}/http/static/viz/2/goog/labs/useragent/util.js (100%) rename {srv/src => src}/http/static/viz/2/goog/math/coordinate.js (100%) rename {srv/src => src}/http/static/viz/2/goog/math/integer.js (100%) rename {srv/src => src}/http/static/viz/2/goog/math/long.js (100%) rename {srv/src => src}/http/static/viz/2/goog/math/math.js (100%) rename {srv/src => src}/http/static/viz/2/goog/math/size.js (100%) rename {srv/src => src}/http/static/viz/2/goog/object/object.js (100%) rename {srv/src => src}/http/static/viz/2/goog/reflect/reflect.js (100%) rename {srv/src => src}/http/static/viz/2/goog/string/const.js (100%) rename {srv/src => src}/http/static/viz/2/goog/string/string.js (100%) rename {srv/src => src}/http/static/viz/2/goog/string/stringbuffer.js (100%) rename {srv/src => src}/http/static/viz/2/goog/string/stringformat.js (100%) rename {srv/src => src}/http/static/viz/2/goog/string/typedstring.js (100%) rename {srv/src => src}/http/static/viz/2/goog/structs/map.js (100%) rename {srv/src => src}/http/static/viz/2/goog/structs/structs.js (100%) rename {srv/src => src}/http/static/viz/2/goog/uri/uri.js (100%) rename {srv/src => src}/http/static/viz/2/goog/uri/utils.js (100%) rename {srv/src => src}/http/static/viz/2/goog/useragent/useragent.js (100%) rename {srv/src => src}/http/static/viz/2/process/env.cljs (100%) rename {srv/src => src}/http/static/viz/2/process/env.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/process/env.js (100%) rename {srv/src => src}/http/static/viz/2/process/env.js.map (100%) rename {srv/src => src}/http/static/viz/2/processing.js (100%) rename {srv/src => src}/http/static/viz/2/quil/core.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/core.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/core.js (100%) rename {srv/src => src}/http/static/viz/2/quil/core.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/middleware.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/middleware.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/middleware.js (100%) rename {srv/src => src}/http/static/viz/2/quil/middleware.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/deprecated_options.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/deprecated_options.js (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/deprecated_options.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/fun_mode.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/fun_mode.js (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/fun_mode.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_2d.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_2d.js (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_2d.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_3d.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_3d.js (100%) rename {srv/src => src}/http/static/viz/2/quil/middlewares/navigation_3d.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/sketch.cljs (100%) rename {srv/src => src}/http/static/viz/2/quil/sketch.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/sketch.js (100%) rename {srv/src => src}/http/static/viz/2/quil/sketch.js.map (100%) rename {srv/src => src}/http/static/viz/2/quil/util.cljc (100%) rename {srv/src => src}/http/static/viz/2/quil/util.cljc.cache.json (100%) rename {srv/src => src}/http/static/viz/2/quil/util.js (100%) rename {srv/src => src}/http/static/viz/2/quil/util.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/core.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/core.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/core.js (100%) rename {srv/src => src}/http/static/viz/2/viz/core.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/debug.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/debug.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/debug.js (100%) rename {srv/src => src}/http/static/viz/2/viz/debug.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/dial.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/dial.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/dial.js (100%) rename {srv/src => src}/http/static/viz/2/viz/dial.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/forest.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/forest.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/forest.js (100%) rename {srv/src => src}/http/static/viz/2/viz/forest.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/ghost.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/ghost.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/ghost.js (100%) rename {srv/src => src}/http/static/viz/2/viz/ghost.js.map (100%) rename {srv/src => src}/http/static/viz/2/viz/grid.cljs (100%) rename {srv/src => src}/http/static/viz/2/viz/grid.cljs.cache.json (100%) rename {srv/src => src}/http/static/viz/2/viz/grid.js (100%) rename {srv/src => src}/http/static/viz/2/viz/grid.js.map (100%) rename {srv/src => src}/http/static/wtfpl.txt (100%) rename {srv/src => src}/http/tpl.go (100%) rename {srv/src => src}/http/tpl/admin.html (100%) rename {srv/src => src}/http/tpl/assets.html (100%) rename {srv/src => src}/http/tpl/base.html (100%) rename {srv/src => src}/http/tpl/draft-posts.html (100%) rename {srv/src => src}/http/tpl/edit-post.html (100%) rename {srv/src => src}/http/tpl/finalize.html (100%) rename {srv/src => src}/http/tpl/follow.html (100%) rename {srv/src => src}/http/tpl/image.html (100%) rename {srv/src => src}/http/tpl/index.html (100%) rename {srv/src => src}/http/tpl/post.html (100%) rename {srv/src => src}/http/tpl/posts.html (100%) rename {srv/src => src}/http/tpl/redirect.html (100%) rename {srv/src => src}/http/tpl/unsubscribe.html (100%) rename {srv/src => src}/mailinglist/mailer.go (100%) rename {srv/src => src}/mailinglist/mailinglist.go (100%) rename {srv/src => src}/mailinglist/store.go (100%) rename {srv/src => src}/mailinglist/store_test.go (100%) rename {srv/src => src}/post/asset.go (100%) rename {srv/src => src}/post/asset_test.go (100%) rename {srv/src => src}/post/draft_post.go (100%) rename {srv/src => src}/post/draft_post_test.go (100%) rename {srv/src => src}/post/post.go (100%) rename {srv/src => src}/post/post_test.go (100%) rename {srv/src => src}/post/sql.go (100%) rename {srv/src => src}/pow/pow.go (100%) rename {srv/src => src}/pow/pow_test.go (100%) rename {srv/src => src}/pow/store.go (100%) rename {srv/src => src}/pow/store_test.go (100%) delete mode 100644 srv/default.nix rename srv-dev-env.sh => tmp-dev-env.sh (76%) diff --git a/Makefile b/Makefile index 50795e3..2f864d8 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,22 @@ CONFIG = ./config.nix +BASH = $$(nix-build --no-out-link -A pkgs.bash)/bin/bash entrypoint: - nix-build -A entrypoint \ - --arg config '(import ${CONFIG})' + nix-build -A entrypoint --arg config '(import ${CONFIG})' -install: - $$(nix-build -A install --arg config '(import ${CONFIG})') +install-systemd: + $$(nix-build --no-out-link -A install --arg config '(import ${CONFIG})') test: - $$(nix-build --no-out-link -A pkgs.bash)/bin/bash srv-dev-env.sh \ - --run "cd srv/src && go test ./... -count=1 -tags integration" - @echo "\nTESTS PASSED!\n" + ${BASH} tmp-dev-env.sh \ + --run "cd src; go test ./... -count=1 -tags integration" -srv.dev-shell: - $$(nix-build --no-out-link -A pkgs.bash)/bin/bash srv-dev-env.sh \ - --command "cd srv/src; return" - -srv.shell: - nix-shell -A srv.shellWithBuild --arg config '(import ${CONFIG})' \ - --command 'cd srv/src; return' +shell: + ${BASH} tmp-dev-env.sh \ + --command " \ + cd src; \ + echo 'Loading test data...'; \ + (cd cmd/load-test-data && go run main.go); \ + return; \ + " diff --git a/default.nix b/default.nix index 98efd74..b342fb7 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,6 @@ { - pkgsArg ? import (fetchTarball { + pkgs ? import (fetchTarball { name = "nixpkgs-21-05"; url = "https://github.com/NixOS/nixpkgs/archive/7e9b0dff974c89e070da1ad85713ff3c20b0ca97.tar.gz"; sha256 = "1ckzhh24mgz6jd1xhfgx0i9mijk6xjqxwsshnvq789xsavrmsc36"; @@ -10,24 +10,60 @@ }: rec { - pkgs = pkgsArg; + inherit pkgs; - srv = pkgs.callPackage (import ./srv) { - inherit config; - }; + init = pkgs.writeText "mediocre-blog-init" '' + + export MEDIOCRE_BLOG_DATA_DIR="${config.dataDir}" + + # mailing list + export MEDIOCRE_BLOG_ML_SMTP_ADDR="${config.mlSMTPAddr}" + export MEDIOCRE_BLOG_ML_SMTP_AUTH="${config.mlSMTPAuth}" + export MEDIOCRE_BLOG_ML_PUBLIC_URL="${config.publicURL}" + + # pow + export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}" + + # http + export MEDIOCRE_BLOG_HTTP_PUBLIC_URL="${config.publicURL}" + export MEDIOCRE_BLOG_HTTP_LISTEN_PROTO="${config.httpListenProto}" + export MEDIOCRE_BLOG_HTTP_LISTEN_ADDR="${config.httpListenAddr}" + export MEDIOCRE_BLOG_HTTP_AUTH_USERS='${builtins.toJSON config.httpAuthUsers}' + export MEDIOCRE_BLOG_HTTP_AUTH_RATELIMIT='${config.httpAuthRatelimit}' + ''; + bin = pkgs.buildGoModule { + pname = "mediocre-blog"; + version = "dev"; + src = ./src; + vendorSha256 = "sha256:1vazrrg8rs9n8x40c9r53h9qnyxw59xkp0aq7jl15fliigk6q0cr"; + + subPackages = [ "cmd/mediocre-blog" ]; + + # disable tests + checkPhase = ''''; + }; entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" '' - #!/bin/sh + #!${pkgs.bash}/bin/bash set -e + source ${init} mkdir -p ${config.runDir} mkdir -p ${config.dataDir} - exec ${srv.bin} + exec ${bin}/bin/mediocre-blog "$@" ''; + shell = pkgs.stdenv.mkDerivation { + name = "mediocre-blog-shell"; + buildInputs = [ pkgs.go pkgs.sqlite ]; + shellHook = '' + source ${init} + ''; + }; + service = pkgs.writeText "mediocre-blog" '' [Unit] Description=mediocregopher mediocre blog diff --git a/srv/src/cfg/cfg.go b/src/cfg/cfg.go similarity index 100% rename from srv/src/cfg/cfg.go rename to src/cfg/cfg.go diff --git a/srv/src/cfg/cfg_test.go b/src/cfg/cfg_test.go similarity index 100% rename from srv/src/cfg/cfg_test.go rename to src/cfg/cfg_test.go diff --git a/srv/src/cfg/data_dir.go b/src/cfg/data_dir.go similarity index 100% rename from srv/src/cfg/data_dir.go rename to src/cfg/data_dir.go diff --git a/srv/src/cfg/mediocre_blog.go b/src/cfg/mediocre_blog.go similarity index 100% rename from srv/src/cfg/mediocre_blog.go rename to src/cfg/mediocre_blog.go diff --git a/srv/src/cmd/hash-password/main.go b/src/cmd/hash-password/main.go similarity index 100% rename from srv/src/cmd/hash-password/main.go rename to src/cmd/hash-password/main.go diff --git a/srv/src/cmd/load-test-data/galaxy.jpg b/src/cmd/load-test-data/galaxy.jpg similarity index 100% rename from srv/src/cmd/load-test-data/galaxy.jpg rename to src/cmd/load-test-data/galaxy.jpg diff --git a/srv/src/cmd/load-test-data/main.go b/src/cmd/load-test-data/main.go similarity index 100% rename from srv/src/cmd/load-test-data/main.go rename to src/cmd/load-test-data/main.go diff --git a/srv/src/cmd/load-test-data/test-data.yml b/src/cmd/load-test-data/test-data.yml similarity index 100% rename from srv/src/cmd/load-test-data/test-data.yml rename to src/cmd/load-test-data/test-data.yml diff --git a/srv/src/cmd/mailinglist-cli/main.go b/src/cmd/mailinglist-cli/main.go similarity index 100% rename from srv/src/cmd/mailinglist-cli/main.go rename to src/cmd/mailinglist-cli/main.go diff --git a/srv/src/cmd/mediocre-blog/main.go b/src/cmd/mediocre-blog/main.go similarity index 100% rename from srv/src/cmd/mediocre-blog/main.go rename to src/cmd/mediocre-blog/main.go diff --git a/srv/src/go.mod b/src/go.mod similarity index 100% rename from srv/src/go.mod rename to src/go.mod diff --git a/srv/src/go.sum b/src/go.sum similarity index 100% rename from srv/src/go.sum rename to src/go.sum diff --git a/srv/src/http/api.go b/src/http/api.go similarity index 100% rename from srv/src/http/api.go rename to src/http/api.go diff --git a/srv/src/http/apiutil/apiutil.go b/src/http/apiutil/apiutil.go similarity index 100% rename from srv/src/http/apiutil/apiutil.go rename to src/http/apiutil/apiutil.go diff --git a/srv/src/http/assets.go b/src/http/assets.go similarity index 100% rename from srv/src/http/assets.go rename to src/http/assets.go diff --git a/srv/src/http/auth.go b/src/http/auth.go similarity index 100% rename from srv/src/http/auth.go rename to src/http/auth.go diff --git a/srv/src/http/auth_test.go b/src/http/auth_test.go similarity index 100% rename from srv/src/http/auth_test.go rename to src/http/auth_test.go diff --git a/srv/src/http/csrf.go b/src/http/csrf.go similarity index 100% rename from srv/src/http/csrf.go rename to src/http/csrf.go diff --git a/srv/src/http/drafts.go b/src/http/drafts.go similarity index 100% rename from srv/src/http/drafts.go rename to src/http/drafts.go diff --git a/srv/src/http/feed.go b/src/http/feed.go similarity index 100% rename from srv/src/http/feed.go rename to src/http/feed.go diff --git a/srv/src/http/index.go b/src/http/index.go similarity index 100% rename from srv/src/http/index.go rename to src/http/index.go diff --git a/srv/src/http/mailinglist.go b/src/http/mailinglist.go similarity index 100% rename from srv/src/http/mailinglist.go rename to src/http/mailinglist.go diff --git a/srv/src/http/middleware.go b/src/http/middleware.go similarity index 100% rename from srv/src/http/middleware.go rename to src/http/middleware.go diff --git a/srv/src/http/posts.go b/src/http/posts.go similarity index 100% rename from srv/src/http/posts.go rename to src/http/posts.go diff --git a/srv/src/http/pow.go b/src/http/pow.go similarity index 100% rename from srv/src/http/pow.go rename to src/http/pow.go diff --git a/srv/src/http/static/api.js b/src/http/static/api.js similarity index 100% rename from srv/src/http/static/api.js rename to src/http/static/api.js diff --git a/srv/src/http/static/component-oriented-design/v1/main.go b/src/http/static/component-oriented-design/v1/main.go similarity index 100% rename from srv/src/http/static/component-oriented-design/v1/main.go rename to src/http/static/component-oriented-design/v1/main.go diff --git a/srv/src/http/static/component-oriented-design/v1/main_test.go b/src/http/static/component-oriented-design/v1/main_test.go similarity index 100% rename from srv/src/http/static/component-oriented-design/v1/main_test.go rename to src/http/static/component-oriented-design/v1/main_test.go diff --git a/srv/src/http/static/component-oriented-design/v2/main.go b/src/http/static/component-oriented-design/v2/main.go similarity index 100% rename from srv/src/http/static/component-oriented-design/v2/main.go rename to src/http/static/component-oriented-design/v2/main.go diff --git a/srv/src/http/static/component-oriented-design/v3/main.go b/src/http/static/component-oriented-design/v3/main.go similarity index 100% rename from srv/src/http/static/component-oriented-design/v3/main.go rename to src/http/static/component-oriented-design/v3/main.go diff --git a/srv/src/http/static/markov/Makefile b/src/http/static/markov/Makefile similarity index 100% rename from srv/src/http/static/markov/Makefile rename to src/http/static/markov/Makefile diff --git a/srv/src/http/static/markov/markov.nix b/src/http/static/markov/markov.nix similarity index 100% rename from srv/src/http/static/markov/markov.nix rename to src/http/static/markov/markov.nix diff --git a/srv/src/http/static/mediocre.css b/src/http/static/mediocre.css similarity index 100% rename from srv/src/http/static/mediocre.css rename to src/http/static/mediocre.css diff --git a/srv/src/http/static/new.css b/src/http/static/new.css similarity index 100% rename from srv/src/http/static/new.css rename to src/http/static/new.css diff --git a/srv/src/http/static/solvePow.js b/src/http/static/solvePow.js similarity index 100% rename from srv/src/http/static/solvePow.js rename to src/http/static/solvePow.js diff --git a/srv/src/http/static/trading-in-the-rain/CW.js b/src/http/static/trading-in-the-rain/CW.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/CW.js rename to src/http/static/trading-in-the-rain/CW.js diff --git a/srv/src/http/static/trading-in-the-rain/Distributor.js b/src/http/static/trading-in-the-rain/Distributor.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/Distributor.js rename to src/http/static/trading-in-the-rain/Distributor.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt b/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt rename to src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js rename to src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js rename to src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js rename to src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js b/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js rename to src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js b/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js diff --git a/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js b/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js rename to src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js diff --git a/srv/src/http/static/trading-in-the-rain/MusicBox.js b/src/http/static/trading-in-the-rain/MusicBox.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/MusicBox.js rename to src/http/static/trading-in-the-rain/MusicBox.js diff --git a/srv/src/http/static/trading-in-the-rain/RainCanvas.js b/src/http/static/trading-in-the-rain/RainCanvas.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/RainCanvas.js rename to src/http/static/trading-in-the-rain/RainCanvas.js diff --git a/srv/src/http/static/trading-in-the-rain/SeriesComposer.js b/src/http/static/trading-in-the-rain/SeriesComposer.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/SeriesComposer.js rename to src/http/static/trading-in-the-rain/SeriesComposer.js diff --git a/srv/src/http/static/trading-in-the-rain/key.gpg b/src/http/static/trading-in-the-rain/key.gpg similarity index 100% rename from srv/src/http/static/trading-in-the-rain/key.gpg rename to src/http/static/trading-in-the-rain/key.gpg diff --git a/srv/src/http/static/trading-in-the-rain/main.js b/src/http/static/trading-in-the-rain/main.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/main.js rename to src/http/static/trading-in-the-rain/main.js diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 diff --git a/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js b/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js similarity index 100% rename from srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js rename to src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js diff --git a/srv/src/http/static/utils.js b/src/http/static/utils.js similarity index 100% rename from srv/src/http/static/utils.js rename to src/http/static/utils.js diff --git a/srv/src/http/static/viz/1/cljs/core.cljs b/src/http/static/viz/1/cljs/core.cljs similarity index 100% rename from srv/src/http/static/viz/1/cljs/core.cljs rename to src/http/static/viz/1/cljs/core.cljs diff --git a/srv/src/http/static/viz/1/cljs/core.js b/src/http/static/viz/1/cljs/core.js similarity index 100% rename from srv/src/http/static/viz/1/cljs/core.js rename to src/http/static/viz/1/cljs/core.js diff --git a/srv/src/http/static/viz/1/cljs/core.js.map b/src/http/static/viz/1/cljs/core.js.map similarity index 100% rename from srv/src/http/static/viz/1/cljs/core.js.map rename to src/http/static/viz/1/cljs/core.js.map diff --git a/srv/src/http/static/viz/1/cljs_deps.js b/src/http/static/viz/1/cljs_deps.js similarity index 100% rename from srv/src/http/static/viz/1/cljs_deps.js rename to src/http/static/viz/1/cljs_deps.js diff --git a/srv/src/http/static/viz/1/clojure/set.cljs b/src/http/static/viz/1/clojure/set.cljs similarity index 100% rename from srv/src/http/static/viz/1/clojure/set.cljs rename to src/http/static/viz/1/clojure/set.cljs diff --git a/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn b/src/http/static/viz/1/clojure/set.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/clojure/set.cljs.cache.edn rename to src/http/static/viz/1/clojure/set.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/clojure/set.js b/src/http/static/viz/1/clojure/set.js similarity index 100% rename from srv/src/http/static/viz/1/clojure/set.js rename to src/http/static/viz/1/clojure/set.js diff --git a/srv/src/http/static/viz/1/clojure/set.js.map b/src/http/static/viz/1/clojure/set.js.map similarity index 100% rename from srv/src/http/static/viz/1/clojure/set.js.map rename to src/http/static/viz/1/clojure/set.js.map diff --git a/srv/src/http/static/viz/1/clojure/string.cljs b/src/http/static/viz/1/clojure/string.cljs similarity index 100% rename from srv/src/http/static/viz/1/clojure/string.cljs rename to src/http/static/viz/1/clojure/string.cljs diff --git a/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn b/src/http/static/viz/1/clojure/string.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/clojure/string.cljs.cache.edn rename to src/http/static/viz/1/clojure/string.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/clojure/string.js b/src/http/static/viz/1/clojure/string.js similarity index 100% rename from srv/src/http/static/viz/1/clojure/string.js rename to src/http/static/viz/1/clojure/string.js diff --git a/srv/src/http/static/viz/1/clojure/string.js.map b/src/http/static/viz/1/clojure/string.js.map similarity index 100% rename from srv/src/http/static/viz/1/clojure/string.js.map rename to src/http/static/viz/1/clojure/string.js.map diff --git a/srv/src/http/static/viz/1/goog/array/array.js b/src/http/static/viz/1/goog/array/array.js similarity index 100% rename from srv/src/http/static/viz/1/goog/array/array.js rename to src/http/static/viz/1/goog/array/array.js diff --git a/srv/src/http/static/viz/1/goog/asserts/asserts.js b/src/http/static/viz/1/goog/asserts/asserts.js similarity index 100% rename from srv/src/http/static/viz/1/goog/asserts/asserts.js rename to src/http/static/viz/1/goog/asserts/asserts.js diff --git a/srv/src/http/static/viz/1/goog/base.js b/src/http/static/viz/1/goog/base.js similarity index 100% rename from srv/src/http/static/viz/1/goog/base.js rename to src/http/static/viz/1/goog/base.js diff --git a/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js b/src/http/static/viz/1/goog/debug/entrypointregistry.js similarity index 100% rename from srv/src/http/static/viz/1/goog/debug/entrypointregistry.js rename to src/http/static/viz/1/goog/debug/entrypointregistry.js diff --git a/srv/src/http/static/viz/1/goog/debug/error.js b/src/http/static/viz/1/goog/debug/error.js similarity index 100% rename from srv/src/http/static/viz/1/goog/debug/error.js rename to src/http/static/viz/1/goog/debug/error.js diff --git a/srv/src/http/static/viz/1/goog/deps.js b/src/http/static/viz/1/goog/deps.js similarity index 100% rename from srv/src/http/static/viz/1/goog/deps.js rename to src/http/static/viz/1/goog/deps.js diff --git a/srv/src/http/static/viz/1/goog/disposable/disposable.js b/src/http/static/viz/1/goog/disposable/disposable.js similarity index 100% rename from srv/src/http/static/viz/1/goog/disposable/disposable.js rename to src/http/static/viz/1/goog/disposable/disposable.js diff --git a/srv/src/http/static/viz/1/goog/disposable/idisposable.js b/src/http/static/viz/1/goog/disposable/idisposable.js similarity index 100% rename from srv/src/http/static/viz/1/goog/disposable/idisposable.js rename to src/http/static/viz/1/goog/disposable/idisposable.js diff --git a/srv/src/http/static/viz/1/goog/dom/browserfeature.js b/src/http/static/viz/1/goog/dom/browserfeature.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/browserfeature.js rename to src/http/static/viz/1/goog/dom/browserfeature.js diff --git a/srv/src/http/static/viz/1/goog/dom/dom.js b/src/http/static/viz/1/goog/dom/dom.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/dom.js rename to src/http/static/viz/1/goog/dom/dom.js diff --git a/srv/src/http/static/viz/1/goog/dom/nodetype.js b/src/http/static/viz/1/goog/dom/nodetype.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/nodetype.js rename to src/http/static/viz/1/goog/dom/nodetype.js diff --git a/srv/src/http/static/viz/1/goog/dom/safe.js b/src/http/static/viz/1/goog/dom/safe.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/safe.js rename to src/http/static/viz/1/goog/dom/safe.js diff --git a/srv/src/http/static/viz/1/goog/dom/tagname.js b/src/http/static/viz/1/goog/dom/tagname.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/tagname.js rename to src/http/static/viz/1/goog/dom/tagname.js diff --git a/srv/src/http/static/viz/1/goog/dom/tags.js b/src/http/static/viz/1/goog/dom/tags.js similarity index 100% rename from srv/src/http/static/viz/1/goog/dom/tags.js rename to src/http/static/viz/1/goog/dom/tags.js diff --git a/srv/src/http/static/viz/1/goog/events/browserevent.js b/src/http/static/viz/1/goog/events/browserevent.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/browserevent.js rename to src/http/static/viz/1/goog/events/browserevent.js diff --git a/srv/src/http/static/viz/1/goog/events/browserfeature.js b/src/http/static/viz/1/goog/events/browserfeature.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/browserfeature.js rename to src/http/static/viz/1/goog/events/browserfeature.js diff --git a/srv/src/http/static/viz/1/goog/events/event.js b/src/http/static/viz/1/goog/events/event.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/event.js rename to src/http/static/viz/1/goog/events/event.js diff --git a/srv/src/http/static/viz/1/goog/events/eventid.js b/src/http/static/viz/1/goog/events/eventid.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/eventid.js rename to src/http/static/viz/1/goog/events/eventid.js diff --git a/srv/src/http/static/viz/1/goog/events/events.js b/src/http/static/viz/1/goog/events/events.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/events.js rename to src/http/static/viz/1/goog/events/events.js diff --git a/srv/src/http/static/viz/1/goog/events/eventtype.js b/src/http/static/viz/1/goog/events/eventtype.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/eventtype.js rename to src/http/static/viz/1/goog/events/eventtype.js diff --git a/srv/src/http/static/viz/1/goog/events/listenable.js b/src/http/static/viz/1/goog/events/listenable.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/listenable.js rename to src/http/static/viz/1/goog/events/listenable.js diff --git a/srv/src/http/static/viz/1/goog/events/listener.js b/src/http/static/viz/1/goog/events/listener.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/listener.js rename to src/http/static/viz/1/goog/events/listener.js diff --git a/srv/src/http/static/viz/1/goog/events/listenermap.js b/src/http/static/viz/1/goog/events/listenermap.js similarity index 100% rename from srv/src/http/static/viz/1/goog/events/listenermap.js rename to src/http/static/viz/1/goog/events/listenermap.js diff --git a/srv/src/http/static/viz/1/goog/fs/url.js b/src/http/static/viz/1/goog/fs/url.js similarity index 100% rename from srv/src/http/static/viz/1/goog/fs/url.js rename to src/http/static/viz/1/goog/fs/url.js diff --git a/srv/src/http/static/viz/1/goog/html/safehtml.js b/src/http/static/viz/1/goog/html/safehtml.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/safehtml.js rename to src/http/static/viz/1/goog/html/safehtml.js diff --git a/srv/src/http/static/viz/1/goog/html/safescript.js b/src/http/static/viz/1/goog/html/safescript.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/safescript.js rename to src/http/static/viz/1/goog/html/safescript.js diff --git a/srv/src/http/static/viz/1/goog/html/safestyle.js b/src/http/static/viz/1/goog/html/safestyle.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/safestyle.js rename to src/http/static/viz/1/goog/html/safestyle.js diff --git a/srv/src/http/static/viz/1/goog/html/safestylesheet.js b/src/http/static/viz/1/goog/html/safestylesheet.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/safestylesheet.js rename to src/http/static/viz/1/goog/html/safestylesheet.js diff --git a/srv/src/http/static/viz/1/goog/html/safeurl.js b/src/http/static/viz/1/goog/html/safeurl.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/safeurl.js rename to src/http/static/viz/1/goog/html/safeurl.js diff --git a/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js b/src/http/static/viz/1/goog/html/trustedresourceurl.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/trustedresourceurl.js rename to src/http/static/viz/1/goog/html/trustedresourceurl.js diff --git a/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js b/src/http/static/viz/1/goog/html/uncheckedconversions.js similarity index 100% rename from srv/src/http/static/viz/1/goog/html/uncheckedconversions.js rename to src/http/static/viz/1/goog/html/uncheckedconversions.js diff --git a/srv/src/http/static/viz/1/goog/i18n/bidi.js b/src/http/static/viz/1/goog/i18n/bidi.js similarity index 100% rename from srv/src/http/static/viz/1/goog/i18n/bidi.js rename to src/http/static/viz/1/goog/i18n/bidi.js diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/browser.js b/src/http/static/viz/1/goog/labs/useragent/browser.js similarity index 100% rename from srv/src/http/static/viz/1/goog/labs/useragent/browser.js rename to src/http/static/viz/1/goog/labs/useragent/browser.js diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/engine.js b/src/http/static/viz/1/goog/labs/useragent/engine.js similarity index 100% rename from srv/src/http/static/viz/1/goog/labs/useragent/engine.js rename to src/http/static/viz/1/goog/labs/useragent/engine.js diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/platform.js b/src/http/static/viz/1/goog/labs/useragent/platform.js similarity index 100% rename from srv/src/http/static/viz/1/goog/labs/useragent/platform.js rename to src/http/static/viz/1/goog/labs/useragent/platform.js diff --git a/srv/src/http/static/viz/1/goog/labs/useragent/util.js b/src/http/static/viz/1/goog/labs/useragent/util.js similarity index 100% rename from srv/src/http/static/viz/1/goog/labs/useragent/util.js rename to src/http/static/viz/1/goog/labs/useragent/util.js diff --git a/srv/src/http/static/viz/1/goog/math/coordinate.js b/src/http/static/viz/1/goog/math/coordinate.js similarity index 100% rename from srv/src/http/static/viz/1/goog/math/coordinate.js rename to src/http/static/viz/1/goog/math/coordinate.js diff --git a/srv/src/http/static/viz/1/goog/math/integer.js b/src/http/static/viz/1/goog/math/integer.js similarity index 100% rename from srv/src/http/static/viz/1/goog/math/integer.js rename to src/http/static/viz/1/goog/math/integer.js diff --git a/srv/src/http/static/viz/1/goog/math/long.js b/src/http/static/viz/1/goog/math/long.js similarity index 100% rename from srv/src/http/static/viz/1/goog/math/long.js rename to src/http/static/viz/1/goog/math/long.js diff --git a/srv/src/http/static/viz/1/goog/math/math.js b/src/http/static/viz/1/goog/math/math.js similarity index 100% rename from srv/src/http/static/viz/1/goog/math/math.js rename to src/http/static/viz/1/goog/math/math.js diff --git a/srv/src/http/static/viz/1/goog/math/size.js b/src/http/static/viz/1/goog/math/size.js similarity index 100% rename from srv/src/http/static/viz/1/goog/math/size.js rename to src/http/static/viz/1/goog/math/size.js diff --git a/srv/src/http/static/viz/1/goog/object/object.js b/src/http/static/viz/1/goog/object/object.js similarity index 100% rename from srv/src/http/static/viz/1/goog/object/object.js rename to src/http/static/viz/1/goog/object/object.js diff --git a/srv/src/http/static/viz/1/goog/reflect/reflect.js b/src/http/static/viz/1/goog/reflect/reflect.js similarity index 100% rename from srv/src/http/static/viz/1/goog/reflect/reflect.js rename to src/http/static/viz/1/goog/reflect/reflect.js diff --git a/srv/src/http/static/viz/1/goog/string/const.js b/src/http/static/viz/1/goog/string/const.js similarity index 100% rename from srv/src/http/static/viz/1/goog/string/const.js rename to src/http/static/viz/1/goog/string/const.js diff --git a/srv/src/http/static/viz/1/goog/string/string.js b/src/http/static/viz/1/goog/string/string.js similarity index 100% rename from srv/src/http/static/viz/1/goog/string/string.js rename to src/http/static/viz/1/goog/string/string.js diff --git a/srv/src/http/static/viz/1/goog/string/stringbuffer.js b/src/http/static/viz/1/goog/string/stringbuffer.js similarity index 100% rename from srv/src/http/static/viz/1/goog/string/stringbuffer.js rename to src/http/static/viz/1/goog/string/stringbuffer.js diff --git a/srv/src/http/static/viz/1/goog/string/stringformat.js b/src/http/static/viz/1/goog/string/stringformat.js similarity index 100% rename from srv/src/http/static/viz/1/goog/string/stringformat.js rename to src/http/static/viz/1/goog/string/stringformat.js diff --git a/srv/src/http/static/viz/1/goog/string/typedstring.js b/src/http/static/viz/1/goog/string/typedstring.js similarity index 100% rename from srv/src/http/static/viz/1/goog/string/typedstring.js rename to src/http/static/viz/1/goog/string/typedstring.js diff --git a/srv/src/http/static/viz/1/goog/useragent/useragent.js b/src/http/static/viz/1/goog/useragent/useragent.js similarity index 100% rename from srv/src/http/static/viz/1/goog/useragent/useragent.js rename to src/http/static/viz/1/goog/useragent/useragent.js diff --git a/srv/src/http/static/viz/1/processing.js b/src/http/static/viz/1/processing.js similarity index 100% rename from srv/src/http/static/viz/1/processing.js rename to src/http/static/viz/1/processing.js diff --git a/srv/src/http/static/viz/1/quil/core.cljc b/src/http/static/viz/1/quil/core.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/core.cljc rename to src/http/static/viz/1/quil/core.cljc diff --git a/srv/src/http/static/viz/1/quil/core.cljc.cache.edn b/src/http/static/viz/1/quil/core.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/core.cljc.cache.edn rename to src/http/static/viz/1/quil/core.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/core.js b/src/http/static/viz/1/quil/core.js similarity index 100% rename from srv/src/http/static/viz/1/quil/core.js rename to src/http/static/viz/1/quil/core.js diff --git a/srv/src/http/static/viz/1/quil/core.js.map b/src/http/static/viz/1/quil/core.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/core.js.map rename to src/http/static/viz/1/quil/core.js.map diff --git a/srv/src/http/static/viz/1/quil/middleware.cljc b/src/http/static/viz/1/quil/middleware.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/middleware.cljc rename to src/http/static/viz/1/quil/middleware.cljc diff --git a/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn b/src/http/static/viz/1/quil/middleware.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn rename to src/http/static/viz/1/quil/middleware.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/middleware.js b/src/http/static/viz/1/quil/middleware.js similarity index 100% rename from srv/src/http/static/viz/1/quil/middleware.js rename to src/http/static/viz/1/quil/middleware.js diff --git a/srv/src/http/static/viz/1/quil/middleware.js.map b/src/http/static/viz/1/quil/middleware.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/middleware.js.map rename to src/http/static/viz/1/quil/middleware.js.map diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc rename to src/http/static/viz/1/quil/middlewares/deprecated_options.cljc diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn rename to src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js b/src/http/static/viz/1/quil/middlewares/deprecated_options.js similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js rename to src/http/static/viz/1/quil/middlewares/deprecated_options.js diff --git a/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map b/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map rename to src/http/static/viz/1/quil/middlewares/deprecated_options.js.map diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc rename to src/http/static/viz/1/quil/middlewares/fun_mode.cljc diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn rename to src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js b/src/http/static/viz/1/quil/middlewares/fun_mode.js similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/fun_mode.js rename to src/http/static/viz/1/quil/middlewares/fun_mode.js diff --git a/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map b/src/http/static/viz/1/quil/middlewares/fun_mode.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map rename to src/http/static/viz/1/quil/middlewares/fun_mode.js.map diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc rename to src/http/static/viz/1/quil/middlewares/navigation_2d.cljc diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn rename to src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js b/src/http/static/viz/1/quil/middlewares/navigation_2d.js similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js rename to src/http/static/viz/1/quil/middlewares/navigation_2d.js diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map b/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map rename to src/http/static/viz/1/quil/middlewares/navigation_2d.js.map diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc rename to src/http/static/viz/1/quil/middlewares/navigation_3d.cljc diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn b/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn rename to src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js b/src/http/static/viz/1/quil/middlewares/navigation_3d.js similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js rename to src/http/static/viz/1/quil/middlewares/navigation_3d.js diff --git a/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map b/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map rename to src/http/static/viz/1/quil/middlewares/navigation_3d.js.map diff --git a/srv/src/http/static/viz/1/quil/sketch.cljs b/src/http/static/viz/1/quil/sketch.cljs similarity index 100% rename from srv/src/http/static/viz/1/quil/sketch.cljs rename to src/http/static/viz/1/quil/sketch.cljs diff --git a/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn b/src/http/static/viz/1/quil/sketch.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn rename to src/http/static/viz/1/quil/sketch.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/quil/sketch.js b/src/http/static/viz/1/quil/sketch.js similarity index 100% rename from srv/src/http/static/viz/1/quil/sketch.js rename to src/http/static/viz/1/quil/sketch.js diff --git a/srv/src/http/static/viz/1/quil/sketch.js.map b/src/http/static/viz/1/quil/sketch.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/sketch.js.map rename to src/http/static/viz/1/quil/sketch.js.map diff --git a/srv/src/http/static/viz/1/quil/util.cljc b/src/http/static/viz/1/quil/util.cljc similarity index 100% rename from srv/src/http/static/viz/1/quil/util.cljc rename to src/http/static/viz/1/quil/util.cljc diff --git a/srv/src/http/static/viz/1/quil/util.cljc.cache.edn b/src/http/static/viz/1/quil/util.cljc.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/quil/util.cljc.cache.edn rename to src/http/static/viz/1/quil/util.cljc.cache.edn diff --git a/srv/src/http/static/viz/1/quil/util.js b/src/http/static/viz/1/quil/util.js similarity index 100% rename from srv/src/http/static/viz/1/quil/util.js rename to src/http/static/viz/1/quil/util.js diff --git a/srv/src/http/static/viz/1/quil/util.js.map b/src/http/static/viz/1/quil/util.js.map similarity index 100% rename from srv/src/http/static/viz/1/quil/util.js.map rename to src/http/static/viz/1/quil/util.js.map diff --git a/srv/src/http/static/viz/1/viz/core.cljs b/src/http/static/viz/1/viz/core.cljs similarity index 100% rename from srv/src/http/static/viz/1/viz/core.cljs rename to src/http/static/viz/1/viz/core.cljs diff --git a/srv/src/http/static/viz/1/viz/core.cljs.cache.edn b/src/http/static/viz/1/viz/core.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/viz/core.cljs.cache.edn rename to src/http/static/viz/1/viz/core.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/viz/core.js b/src/http/static/viz/1/viz/core.js similarity index 100% rename from srv/src/http/static/viz/1/viz/core.js rename to src/http/static/viz/1/viz/core.js diff --git a/srv/src/http/static/viz/1/viz/core.js.map b/src/http/static/viz/1/viz/core.js.map similarity index 100% rename from srv/src/http/static/viz/1/viz/core.js.map rename to src/http/static/viz/1/viz/core.js.map diff --git a/srv/src/http/static/viz/1/viz/forest.cljs b/src/http/static/viz/1/viz/forest.cljs similarity index 100% rename from srv/src/http/static/viz/1/viz/forest.cljs rename to src/http/static/viz/1/viz/forest.cljs diff --git a/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn b/src/http/static/viz/1/viz/forest.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/viz/forest.cljs.cache.edn rename to src/http/static/viz/1/viz/forest.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/viz/forest.js b/src/http/static/viz/1/viz/forest.js similarity index 100% rename from srv/src/http/static/viz/1/viz/forest.js rename to src/http/static/viz/1/viz/forest.js diff --git a/srv/src/http/static/viz/1/viz/forest.js.map b/src/http/static/viz/1/viz/forest.js.map similarity index 100% rename from srv/src/http/static/viz/1/viz/forest.js.map rename to src/http/static/viz/1/viz/forest.js.map diff --git a/srv/src/http/static/viz/1/viz/ghost.cljs b/src/http/static/viz/1/viz/ghost.cljs similarity index 100% rename from srv/src/http/static/viz/1/viz/ghost.cljs rename to src/http/static/viz/1/viz/ghost.cljs diff --git a/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn b/src/http/static/viz/1/viz/ghost.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn rename to src/http/static/viz/1/viz/ghost.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/viz/ghost.js b/src/http/static/viz/1/viz/ghost.js similarity index 100% rename from srv/src/http/static/viz/1/viz/ghost.js rename to src/http/static/viz/1/viz/ghost.js diff --git a/srv/src/http/static/viz/1/viz/ghost.js.map b/src/http/static/viz/1/viz/ghost.js.map similarity index 100% rename from srv/src/http/static/viz/1/viz/ghost.js.map rename to src/http/static/viz/1/viz/ghost.js.map diff --git a/srv/src/http/static/viz/1/viz/grid.cljs b/src/http/static/viz/1/viz/grid.cljs similarity index 100% rename from srv/src/http/static/viz/1/viz/grid.cljs rename to src/http/static/viz/1/viz/grid.cljs diff --git a/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn b/src/http/static/viz/1/viz/grid.cljs.cache.edn similarity index 100% rename from srv/src/http/static/viz/1/viz/grid.cljs.cache.edn rename to src/http/static/viz/1/viz/grid.cljs.cache.edn diff --git a/srv/src/http/static/viz/1/viz/grid.js b/src/http/static/viz/1/viz/grid.js similarity index 100% rename from srv/src/http/static/viz/1/viz/grid.js rename to src/http/static/viz/1/viz/grid.js diff --git a/srv/src/http/static/viz/1/viz/grid.js.map b/src/http/static/viz/1/viz/grid.js.map similarity index 100% rename from srv/src/http/static/viz/1/viz/grid.js.map rename to src/http/static/viz/1/viz/grid.js.map diff --git a/srv/src/http/static/viz/2/cljs/core.cljs b/src/http/static/viz/2/cljs/core.cljs similarity index 100% rename from srv/src/http/static/viz/2/cljs/core.cljs rename to src/http/static/viz/2/cljs/core.cljs diff --git a/srv/src/http/static/viz/2/cljs/core.js b/src/http/static/viz/2/cljs/core.js similarity index 100% rename from srv/src/http/static/viz/2/cljs/core.js rename to src/http/static/viz/2/cljs/core.js diff --git a/srv/src/http/static/viz/2/cljs/core.js.map b/src/http/static/viz/2/cljs/core.js.map similarity index 100% rename from srv/src/http/static/viz/2/cljs/core.js.map rename to src/http/static/viz/2/cljs/core.js.map diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json b/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json rename to src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js b/src/http/static/viz/2/cljs/user/debug9D984AE.js similarity index 100% rename from srv/src/http/static/viz/2/cljs/user/debug9D984AE.js rename to src/http/static/viz/2/cljs/user/debug9D984AE.js diff --git a/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map b/src/http/static/viz/2/cljs/user/debug9D984AE.js.map similarity index 100% rename from srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map rename to src/http/static/viz/2/cljs/user/debug9D984AE.js.map diff --git a/srv/src/http/static/viz/2/cljs_deps.js b/src/http/static/viz/2/cljs_deps.js similarity index 100% rename from srv/src/http/static/viz/2/cljs_deps.js rename to src/http/static/viz/2/cljs_deps.js diff --git a/srv/src/http/static/viz/2/cljsc_opts.edn b/src/http/static/viz/2/cljsc_opts.edn similarity index 100% rename from srv/src/http/static/viz/2/cljsc_opts.edn rename to src/http/static/viz/2/cljsc_opts.edn diff --git a/srv/src/http/static/viz/2/clojure/set.cljs b/src/http/static/viz/2/clojure/set.cljs similarity index 100% rename from srv/src/http/static/viz/2/clojure/set.cljs rename to src/http/static/viz/2/clojure/set.cljs diff --git a/srv/src/http/static/viz/2/clojure/set.cljs.cache.json b/src/http/static/viz/2/clojure/set.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/clojure/set.cljs.cache.json rename to src/http/static/viz/2/clojure/set.cljs.cache.json diff --git a/srv/src/http/static/viz/2/clojure/set.js b/src/http/static/viz/2/clojure/set.js similarity index 100% rename from srv/src/http/static/viz/2/clojure/set.js rename to src/http/static/viz/2/clojure/set.js diff --git a/srv/src/http/static/viz/2/clojure/set.js.map b/src/http/static/viz/2/clojure/set.js.map similarity index 100% rename from srv/src/http/static/viz/2/clojure/set.js.map rename to src/http/static/viz/2/clojure/set.js.map diff --git a/srv/src/http/static/viz/2/clojure/string.cljs b/src/http/static/viz/2/clojure/string.cljs similarity index 100% rename from srv/src/http/static/viz/2/clojure/string.cljs rename to src/http/static/viz/2/clojure/string.cljs diff --git a/srv/src/http/static/viz/2/clojure/string.cljs.cache.json b/src/http/static/viz/2/clojure/string.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/clojure/string.cljs.cache.json rename to src/http/static/viz/2/clojure/string.cljs.cache.json diff --git a/srv/src/http/static/viz/2/clojure/string.js b/src/http/static/viz/2/clojure/string.js similarity index 100% rename from srv/src/http/static/viz/2/clojure/string.js rename to src/http/static/viz/2/clojure/string.js diff --git a/srv/src/http/static/viz/2/clojure/string.js.map b/src/http/static/viz/2/clojure/string.js.map similarity index 100% rename from srv/src/http/static/viz/2/clojure/string.js.map rename to src/http/static/viz/2/clojure/string.js.map diff --git a/srv/src/http/static/viz/2/goog/array/array.js b/src/http/static/viz/2/goog/array/array.js similarity index 100% rename from srv/src/http/static/viz/2/goog/array/array.js rename to src/http/static/viz/2/goog/array/array.js diff --git a/srv/src/http/static/viz/2/goog/asserts/asserts.js b/src/http/static/viz/2/goog/asserts/asserts.js similarity index 100% rename from srv/src/http/static/viz/2/goog/asserts/asserts.js rename to src/http/static/viz/2/goog/asserts/asserts.js diff --git a/srv/src/http/static/viz/2/goog/base.js b/src/http/static/viz/2/goog/base.js similarity index 100% rename from srv/src/http/static/viz/2/goog/base.js rename to src/http/static/viz/2/goog/base.js diff --git a/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js b/src/http/static/viz/2/goog/debug/entrypointregistry.js similarity index 100% rename from srv/src/http/static/viz/2/goog/debug/entrypointregistry.js rename to src/http/static/viz/2/goog/debug/entrypointregistry.js diff --git a/srv/src/http/static/viz/2/goog/debug/error.js b/src/http/static/viz/2/goog/debug/error.js similarity index 100% rename from srv/src/http/static/viz/2/goog/debug/error.js rename to src/http/static/viz/2/goog/debug/error.js diff --git a/srv/src/http/static/viz/2/goog/deps.js b/src/http/static/viz/2/goog/deps.js similarity index 100% rename from srv/src/http/static/viz/2/goog/deps.js rename to src/http/static/viz/2/goog/deps.js diff --git a/srv/src/http/static/viz/2/goog/disposable/disposable.js b/src/http/static/viz/2/goog/disposable/disposable.js similarity index 100% rename from srv/src/http/static/viz/2/goog/disposable/disposable.js rename to src/http/static/viz/2/goog/disposable/disposable.js diff --git a/srv/src/http/static/viz/2/goog/disposable/idisposable.js b/src/http/static/viz/2/goog/disposable/idisposable.js similarity index 100% rename from srv/src/http/static/viz/2/goog/disposable/idisposable.js rename to src/http/static/viz/2/goog/disposable/idisposable.js diff --git a/srv/src/http/static/viz/2/goog/dom/asserts.js b/src/http/static/viz/2/goog/dom/asserts.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/asserts.js rename to src/http/static/viz/2/goog/dom/asserts.js diff --git a/srv/src/http/static/viz/2/goog/dom/browserfeature.js b/src/http/static/viz/2/goog/dom/browserfeature.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/browserfeature.js rename to src/http/static/viz/2/goog/dom/browserfeature.js diff --git a/srv/src/http/static/viz/2/goog/dom/dom.js b/src/http/static/viz/2/goog/dom/dom.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/dom.js rename to src/http/static/viz/2/goog/dom/dom.js diff --git a/srv/src/http/static/viz/2/goog/dom/htmlelement.js b/src/http/static/viz/2/goog/dom/htmlelement.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/htmlelement.js rename to src/http/static/viz/2/goog/dom/htmlelement.js diff --git a/srv/src/http/static/viz/2/goog/dom/nodetype.js b/src/http/static/viz/2/goog/dom/nodetype.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/nodetype.js rename to src/http/static/viz/2/goog/dom/nodetype.js diff --git a/srv/src/http/static/viz/2/goog/dom/safe.js b/src/http/static/viz/2/goog/dom/safe.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/safe.js rename to src/http/static/viz/2/goog/dom/safe.js diff --git a/srv/src/http/static/viz/2/goog/dom/tagname.js b/src/http/static/viz/2/goog/dom/tagname.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/tagname.js rename to src/http/static/viz/2/goog/dom/tagname.js diff --git a/srv/src/http/static/viz/2/goog/dom/tags.js b/src/http/static/viz/2/goog/dom/tags.js similarity index 100% rename from srv/src/http/static/viz/2/goog/dom/tags.js rename to src/http/static/viz/2/goog/dom/tags.js diff --git a/srv/src/http/static/viz/2/goog/events/browserevent.js b/src/http/static/viz/2/goog/events/browserevent.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/browserevent.js rename to src/http/static/viz/2/goog/events/browserevent.js diff --git a/srv/src/http/static/viz/2/goog/events/browserfeature.js b/src/http/static/viz/2/goog/events/browserfeature.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/browserfeature.js rename to src/http/static/viz/2/goog/events/browserfeature.js diff --git a/srv/src/http/static/viz/2/goog/events/event.js b/src/http/static/viz/2/goog/events/event.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/event.js rename to src/http/static/viz/2/goog/events/event.js diff --git a/srv/src/http/static/viz/2/goog/events/eventid.js b/src/http/static/viz/2/goog/events/eventid.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/eventid.js rename to src/http/static/viz/2/goog/events/eventid.js diff --git a/srv/src/http/static/viz/2/goog/events/events.js b/src/http/static/viz/2/goog/events/events.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/events.js rename to src/http/static/viz/2/goog/events/events.js diff --git a/srv/src/http/static/viz/2/goog/events/eventtype.js b/src/http/static/viz/2/goog/events/eventtype.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/eventtype.js rename to src/http/static/viz/2/goog/events/eventtype.js diff --git a/srv/src/http/static/viz/2/goog/events/listenable.js b/src/http/static/viz/2/goog/events/listenable.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/listenable.js rename to src/http/static/viz/2/goog/events/listenable.js diff --git a/srv/src/http/static/viz/2/goog/events/listener.js b/src/http/static/viz/2/goog/events/listener.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/listener.js rename to src/http/static/viz/2/goog/events/listener.js diff --git a/srv/src/http/static/viz/2/goog/events/listenermap.js b/src/http/static/viz/2/goog/events/listenermap.js similarity index 100% rename from srv/src/http/static/viz/2/goog/events/listenermap.js rename to src/http/static/viz/2/goog/events/listenermap.js diff --git a/srv/src/http/static/viz/2/goog/fs/url.js b/src/http/static/viz/2/goog/fs/url.js similarity index 100% rename from srv/src/http/static/viz/2/goog/fs/url.js rename to src/http/static/viz/2/goog/fs/url.js diff --git a/srv/src/http/static/viz/2/goog/functions/functions.js b/src/http/static/viz/2/goog/functions/functions.js similarity index 100% rename from srv/src/http/static/viz/2/goog/functions/functions.js rename to src/http/static/viz/2/goog/functions/functions.js diff --git a/srv/src/http/static/viz/2/goog/html/safehtml.js b/src/http/static/viz/2/goog/html/safehtml.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/safehtml.js rename to src/http/static/viz/2/goog/html/safehtml.js diff --git a/srv/src/http/static/viz/2/goog/html/safescript.js b/src/http/static/viz/2/goog/html/safescript.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/safescript.js rename to src/http/static/viz/2/goog/html/safescript.js diff --git a/srv/src/http/static/viz/2/goog/html/safestyle.js b/src/http/static/viz/2/goog/html/safestyle.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/safestyle.js rename to src/http/static/viz/2/goog/html/safestyle.js diff --git a/srv/src/http/static/viz/2/goog/html/safestylesheet.js b/src/http/static/viz/2/goog/html/safestylesheet.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/safestylesheet.js rename to src/http/static/viz/2/goog/html/safestylesheet.js diff --git a/srv/src/http/static/viz/2/goog/html/safeurl.js b/src/http/static/viz/2/goog/html/safeurl.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/safeurl.js rename to src/http/static/viz/2/goog/html/safeurl.js diff --git a/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js b/src/http/static/viz/2/goog/html/trustedresourceurl.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/trustedresourceurl.js rename to src/http/static/viz/2/goog/html/trustedresourceurl.js diff --git a/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js b/src/http/static/viz/2/goog/html/uncheckedconversions.js similarity index 100% rename from srv/src/http/static/viz/2/goog/html/uncheckedconversions.js rename to src/http/static/viz/2/goog/html/uncheckedconversions.js diff --git a/srv/src/http/static/viz/2/goog/i18n/bidi.js b/src/http/static/viz/2/goog/i18n/bidi.js similarity index 100% rename from srv/src/http/static/viz/2/goog/i18n/bidi.js rename to src/http/static/viz/2/goog/i18n/bidi.js diff --git a/srv/src/http/static/viz/2/goog/iter/iter.js b/src/http/static/viz/2/goog/iter/iter.js similarity index 100% rename from srv/src/http/static/viz/2/goog/iter/iter.js rename to src/http/static/viz/2/goog/iter/iter.js diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/browser.js b/src/http/static/viz/2/goog/labs/useragent/browser.js similarity index 100% rename from srv/src/http/static/viz/2/goog/labs/useragent/browser.js rename to src/http/static/viz/2/goog/labs/useragent/browser.js diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/engine.js b/src/http/static/viz/2/goog/labs/useragent/engine.js similarity index 100% rename from srv/src/http/static/viz/2/goog/labs/useragent/engine.js rename to src/http/static/viz/2/goog/labs/useragent/engine.js diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/platform.js b/src/http/static/viz/2/goog/labs/useragent/platform.js similarity index 100% rename from srv/src/http/static/viz/2/goog/labs/useragent/platform.js rename to src/http/static/viz/2/goog/labs/useragent/platform.js diff --git a/srv/src/http/static/viz/2/goog/labs/useragent/util.js b/src/http/static/viz/2/goog/labs/useragent/util.js similarity index 100% rename from srv/src/http/static/viz/2/goog/labs/useragent/util.js rename to src/http/static/viz/2/goog/labs/useragent/util.js diff --git a/srv/src/http/static/viz/2/goog/math/coordinate.js b/src/http/static/viz/2/goog/math/coordinate.js similarity index 100% rename from srv/src/http/static/viz/2/goog/math/coordinate.js rename to src/http/static/viz/2/goog/math/coordinate.js diff --git a/srv/src/http/static/viz/2/goog/math/integer.js b/src/http/static/viz/2/goog/math/integer.js similarity index 100% rename from srv/src/http/static/viz/2/goog/math/integer.js rename to src/http/static/viz/2/goog/math/integer.js diff --git a/srv/src/http/static/viz/2/goog/math/long.js b/src/http/static/viz/2/goog/math/long.js similarity index 100% rename from srv/src/http/static/viz/2/goog/math/long.js rename to src/http/static/viz/2/goog/math/long.js diff --git a/srv/src/http/static/viz/2/goog/math/math.js b/src/http/static/viz/2/goog/math/math.js similarity index 100% rename from srv/src/http/static/viz/2/goog/math/math.js rename to src/http/static/viz/2/goog/math/math.js diff --git a/srv/src/http/static/viz/2/goog/math/size.js b/src/http/static/viz/2/goog/math/size.js similarity index 100% rename from srv/src/http/static/viz/2/goog/math/size.js rename to src/http/static/viz/2/goog/math/size.js diff --git a/srv/src/http/static/viz/2/goog/object/object.js b/src/http/static/viz/2/goog/object/object.js similarity index 100% rename from srv/src/http/static/viz/2/goog/object/object.js rename to src/http/static/viz/2/goog/object/object.js diff --git a/srv/src/http/static/viz/2/goog/reflect/reflect.js b/src/http/static/viz/2/goog/reflect/reflect.js similarity index 100% rename from srv/src/http/static/viz/2/goog/reflect/reflect.js rename to src/http/static/viz/2/goog/reflect/reflect.js diff --git a/srv/src/http/static/viz/2/goog/string/const.js b/src/http/static/viz/2/goog/string/const.js similarity index 100% rename from srv/src/http/static/viz/2/goog/string/const.js rename to src/http/static/viz/2/goog/string/const.js diff --git a/srv/src/http/static/viz/2/goog/string/string.js b/src/http/static/viz/2/goog/string/string.js similarity index 100% rename from srv/src/http/static/viz/2/goog/string/string.js rename to src/http/static/viz/2/goog/string/string.js diff --git a/srv/src/http/static/viz/2/goog/string/stringbuffer.js b/src/http/static/viz/2/goog/string/stringbuffer.js similarity index 100% rename from srv/src/http/static/viz/2/goog/string/stringbuffer.js rename to src/http/static/viz/2/goog/string/stringbuffer.js diff --git a/srv/src/http/static/viz/2/goog/string/stringformat.js b/src/http/static/viz/2/goog/string/stringformat.js similarity index 100% rename from srv/src/http/static/viz/2/goog/string/stringformat.js rename to src/http/static/viz/2/goog/string/stringformat.js diff --git a/srv/src/http/static/viz/2/goog/string/typedstring.js b/src/http/static/viz/2/goog/string/typedstring.js similarity index 100% rename from srv/src/http/static/viz/2/goog/string/typedstring.js rename to src/http/static/viz/2/goog/string/typedstring.js diff --git a/srv/src/http/static/viz/2/goog/structs/map.js b/src/http/static/viz/2/goog/structs/map.js similarity index 100% rename from srv/src/http/static/viz/2/goog/structs/map.js rename to src/http/static/viz/2/goog/structs/map.js diff --git a/srv/src/http/static/viz/2/goog/structs/structs.js b/src/http/static/viz/2/goog/structs/structs.js similarity index 100% rename from srv/src/http/static/viz/2/goog/structs/structs.js rename to src/http/static/viz/2/goog/structs/structs.js diff --git a/srv/src/http/static/viz/2/goog/uri/uri.js b/src/http/static/viz/2/goog/uri/uri.js similarity index 100% rename from srv/src/http/static/viz/2/goog/uri/uri.js rename to src/http/static/viz/2/goog/uri/uri.js diff --git a/srv/src/http/static/viz/2/goog/uri/utils.js b/src/http/static/viz/2/goog/uri/utils.js similarity index 100% rename from srv/src/http/static/viz/2/goog/uri/utils.js rename to src/http/static/viz/2/goog/uri/utils.js diff --git a/srv/src/http/static/viz/2/goog/useragent/useragent.js b/src/http/static/viz/2/goog/useragent/useragent.js similarity index 100% rename from srv/src/http/static/viz/2/goog/useragent/useragent.js rename to src/http/static/viz/2/goog/useragent/useragent.js diff --git a/srv/src/http/static/viz/2/process/env.cljs b/src/http/static/viz/2/process/env.cljs similarity index 100% rename from srv/src/http/static/viz/2/process/env.cljs rename to src/http/static/viz/2/process/env.cljs diff --git a/srv/src/http/static/viz/2/process/env.cljs.cache.json b/src/http/static/viz/2/process/env.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/process/env.cljs.cache.json rename to src/http/static/viz/2/process/env.cljs.cache.json diff --git a/srv/src/http/static/viz/2/process/env.js b/src/http/static/viz/2/process/env.js similarity index 100% rename from srv/src/http/static/viz/2/process/env.js rename to src/http/static/viz/2/process/env.js diff --git a/srv/src/http/static/viz/2/process/env.js.map b/src/http/static/viz/2/process/env.js.map similarity index 100% rename from srv/src/http/static/viz/2/process/env.js.map rename to src/http/static/viz/2/process/env.js.map diff --git a/srv/src/http/static/viz/2/processing.js b/src/http/static/viz/2/processing.js similarity index 100% rename from srv/src/http/static/viz/2/processing.js rename to src/http/static/viz/2/processing.js diff --git a/srv/src/http/static/viz/2/quil/core.cljc b/src/http/static/viz/2/quil/core.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/core.cljc rename to src/http/static/viz/2/quil/core.cljc diff --git a/srv/src/http/static/viz/2/quil/core.cljc.cache.json b/src/http/static/viz/2/quil/core.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/core.cljc.cache.json rename to src/http/static/viz/2/quil/core.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/core.js b/src/http/static/viz/2/quil/core.js similarity index 100% rename from srv/src/http/static/viz/2/quil/core.js rename to src/http/static/viz/2/quil/core.js diff --git a/srv/src/http/static/viz/2/quil/core.js.map b/src/http/static/viz/2/quil/core.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/core.js.map rename to src/http/static/viz/2/quil/core.js.map diff --git a/srv/src/http/static/viz/2/quil/middleware.cljc b/src/http/static/viz/2/quil/middleware.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/middleware.cljc rename to src/http/static/viz/2/quil/middleware.cljc diff --git a/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json b/src/http/static/viz/2/quil/middleware.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/middleware.cljc.cache.json rename to src/http/static/viz/2/quil/middleware.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/middleware.js b/src/http/static/viz/2/quil/middleware.js similarity index 100% rename from srv/src/http/static/viz/2/quil/middleware.js rename to src/http/static/viz/2/quil/middleware.js diff --git a/srv/src/http/static/viz/2/quil/middleware.js.map b/src/http/static/viz/2/quil/middleware.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/middleware.js.map rename to src/http/static/viz/2/quil/middleware.js.map diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc rename to src/http/static/viz/2/quil/middlewares/deprecated_options.cljc diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json rename to src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js b/src/http/static/viz/2/quil/middlewares/deprecated_options.js similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js rename to src/http/static/viz/2/quil/middlewares/deprecated_options.js diff --git a/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map b/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map rename to src/http/static/viz/2/quil/middlewares/deprecated_options.js.map diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc rename to src/http/static/viz/2/quil/middlewares/fun_mode.cljc diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json rename to src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js b/src/http/static/viz/2/quil/middlewares/fun_mode.js similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/fun_mode.js rename to src/http/static/viz/2/quil/middlewares/fun_mode.js diff --git a/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map b/src/http/static/viz/2/quil/middlewares/fun_mode.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map rename to src/http/static/viz/2/quil/middlewares/fun_mode.js.map diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc rename to src/http/static/viz/2/quil/middlewares/navigation_2d.cljc diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json rename to src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js b/src/http/static/viz/2/quil/middlewares/navigation_2d.js similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js rename to src/http/static/viz/2/quil/middlewares/navigation_2d.js diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map b/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map rename to src/http/static/viz/2/quil/middlewares/navigation_2d.js.map diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc rename to src/http/static/viz/2/quil/middlewares/navigation_3d.cljc diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json b/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json rename to src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js b/src/http/static/viz/2/quil/middlewares/navigation_3d.js similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js rename to src/http/static/viz/2/quil/middlewares/navigation_3d.js diff --git a/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map b/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map rename to src/http/static/viz/2/quil/middlewares/navigation_3d.js.map diff --git a/srv/src/http/static/viz/2/quil/sketch.cljs b/src/http/static/viz/2/quil/sketch.cljs similarity index 100% rename from srv/src/http/static/viz/2/quil/sketch.cljs rename to src/http/static/viz/2/quil/sketch.cljs diff --git a/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json b/src/http/static/viz/2/quil/sketch.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/sketch.cljs.cache.json rename to src/http/static/viz/2/quil/sketch.cljs.cache.json diff --git a/srv/src/http/static/viz/2/quil/sketch.js b/src/http/static/viz/2/quil/sketch.js similarity index 100% rename from srv/src/http/static/viz/2/quil/sketch.js rename to src/http/static/viz/2/quil/sketch.js diff --git a/srv/src/http/static/viz/2/quil/sketch.js.map b/src/http/static/viz/2/quil/sketch.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/sketch.js.map rename to src/http/static/viz/2/quil/sketch.js.map diff --git a/srv/src/http/static/viz/2/quil/util.cljc b/src/http/static/viz/2/quil/util.cljc similarity index 100% rename from srv/src/http/static/viz/2/quil/util.cljc rename to src/http/static/viz/2/quil/util.cljc diff --git a/srv/src/http/static/viz/2/quil/util.cljc.cache.json b/src/http/static/viz/2/quil/util.cljc.cache.json similarity index 100% rename from srv/src/http/static/viz/2/quil/util.cljc.cache.json rename to src/http/static/viz/2/quil/util.cljc.cache.json diff --git a/srv/src/http/static/viz/2/quil/util.js b/src/http/static/viz/2/quil/util.js similarity index 100% rename from srv/src/http/static/viz/2/quil/util.js rename to src/http/static/viz/2/quil/util.js diff --git a/srv/src/http/static/viz/2/quil/util.js.map b/src/http/static/viz/2/quil/util.js.map similarity index 100% rename from srv/src/http/static/viz/2/quil/util.js.map rename to src/http/static/viz/2/quil/util.js.map diff --git a/srv/src/http/static/viz/2/viz/core.cljs b/src/http/static/viz/2/viz/core.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/core.cljs rename to src/http/static/viz/2/viz/core.cljs diff --git a/srv/src/http/static/viz/2/viz/core.cljs.cache.json b/src/http/static/viz/2/viz/core.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/core.cljs.cache.json rename to src/http/static/viz/2/viz/core.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/core.js b/src/http/static/viz/2/viz/core.js similarity index 100% rename from srv/src/http/static/viz/2/viz/core.js rename to src/http/static/viz/2/viz/core.js diff --git a/srv/src/http/static/viz/2/viz/core.js.map b/src/http/static/viz/2/viz/core.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/core.js.map rename to src/http/static/viz/2/viz/core.js.map diff --git a/srv/src/http/static/viz/2/viz/debug.cljs b/src/http/static/viz/2/viz/debug.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/debug.cljs rename to src/http/static/viz/2/viz/debug.cljs diff --git a/srv/src/http/static/viz/2/viz/debug.cljs.cache.json b/src/http/static/viz/2/viz/debug.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/debug.cljs.cache.json rename to src/http/static/viz/2/viz/debug.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/debug.js b/src/http/static/viz/2/viz/debug.js similarity index 100% rename from srv/src/http/static/viz/2/viz/debug.js rename to src/http/static/viz/2/viz/debug.js diff --git a/srv/src/http/static/viz/2/viz/debug.js.map b/src/http/static/viz/2/viz/debug.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/debug.js.map rename to src/http/static/viz/2/viz/debug.js.map diff --git a/srv/src/http/static/viz/2/viz/dial.cljs b/src/http/static/viz/2/viz/dial.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/dial.cljs rename to src/http/static/viz/2/viz/dial.cljs diff --git a/srv/src/http/static/viz/2/viz/dial.cljs.cache.json b/src/http/static/viz/2/viz/dial.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/dial.cljs.cache.json rename to src/http/static/viz/2/viz/dial.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/dial.js b/src/http/static/viz/2/viz/dial.js similarity index 100% rename from srv/src/http/static/viz/2/viz/dial.js rename to src/http/static/viz/2/viz/dial.js diff --git a/srv/src/http/static/viz/2/viz/dial.js.map b/src/http/static/viz/2/viz/dial.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/dial.js.map rename to src/http/static/viz/2/viz/dial.js.map diff --git a/srv/src/http/static/viz/2/viz/forest.cljs b/src/http/static/viz/2/viz/forest.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/forest.cljs rename to src/http/static/viz/2/viz/forest.cljs diff --git a/srv/src/http/static/viz/2/viz/forest.cljs.cache.json b/src/http/static/viz/2/viz/forest.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/forest.cljs.cache.json rename to src/http/static/viz/2/viz/forest.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/forest.js b/src/http/static/viz/2/viz/forest.js similarity index 100% rename from srv/src/http/static/viz/2/viz/forest.js rename to src/http/static/viz/2/viz/forest.js diff --git a/srv/src/http/static/viz/2/viz/forest.js.map b/src/http/static/viz/2/viz/forest.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/forest.js.map rename to src/http/static/viz/2/viz/forest.js.map diff --git a/srv/src/http/static/viz/2/viz/ghost.cljs b/src/http/static/viz/2/viz/ghost.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/ghost.cljs rename to src/http/static/viz/2/viz/ghost.cljs diff --git a/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json b/src/http/static/viz/2/viz/ghost.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/ghost.cljs.cache.json rename to src/http/static/viz/2/viz/ghost.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/ghost.js b/src/http/static/viz/2/viz/ghost.js similarity index 100% rename from srv/src/http/static/viz/2/viz/ghost.js rename to src/http/static/viz/2/viz/ghost.js diff --git a/srv/src/http/static/viz/2/viz/ghost.js.map b/src/http/static/viz/2/viz/ghost.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/ghost.js.map rename to src/http/static/viz/2/viz/ghost.js.map diff --git a/srv/src/http/static/viz/2/viz/grid.cljs b/src/http/static/viz/2/viz/grid.cljs similarity index 100% rename from srv/src/http/static/viz/2/viz/grid.cljs rename to src/http/static/viz/2/viz/grid.cljs diff --git a/srv/src/http/static/viz/2/viz/grid.cljs.cache.json b/src/http/static/viz/2/viz/grid.cljs.cache.json similarity index 100% rename from srv/src/http/static/viz/2/viz/grid.cljs.cache.json rename to src/http/static/viz/2/viz/grid.cljs.cache.json diff --git a/srv/src/http/static/viz/2/viz/grid.js b/src/http/static/viz/2/viz/grid.js similarity index 100% rename from srv/src/http/static/viz/2/viz/grid.js rename to src/http/static/viz/2/viz/grid.js diff --git a/srv/src/http/static/viz/2/viz/grid.js.map b/src/http/static/viz/2/viz/grid.js.map similarity index 100% rename from srv/src/http/static/viz/2/viz/grid.js.map rename to src/http/static/viz/2/viz/grid.js.map diff --git a/srv/src/http/static/wtfpl.txt b/src/http/static/wtfpl.txt similarity index 100% rename from srv/src/http/static/wtfpl.txt rename to src/http/static/wtfpl.txt diff --git a/srv/src/http/tpl.go b/src/http/tpl.go similarity index 100% rename from srv/src/http/tpl.go rename to src/http/tpl.go diff --git a/srv/src/http/tpl/admin.html b/src/http/tpl/admin.html similarity index 100% rename from srv/src/http/tpl/admin.html rename to src/http/tpl/admin.html diff --git a/srv/src/http/tpl/assets.html b/src/http/tpl/assets.html similarity index 100% rename from srv/src/http/tpl/assets.html rename to src/http/tpl/assets.html diff --git a/srv/src/http/tpl/base.html b/src/http/tpl/base.html similarity index 100% rename from srv/src/http/tpl/base.html rename to src/http/tpl/base.html diff --git a/srv/src/http/tpl/draft-posts.html b/src/http/tpl/draft-posts.html similarity index 100% rename from srv/src/http/tpl/draft-posts.html rename to src/http/tpl/draft-posts.html diff --git a/srv/src/http/tpl/edit-post.html b/src/http/tpl/edit-post.html similarity index 100% rename from srv/src/http/tpl/edit-post.html rename to src/http/tpl/edit-post.html diff --git a/srv/src/http/tpl/finalize.html b/src/http/tpl/finalize.html similarity index 100% rename from srv/src/http/tpl/finalize.html rename to src/http/tpl/finalize.html diff --git a/srv/src/http/tpl/follow.html b/src/http/tpl/follow.html similarity index 100% rename from srv/src/http/tpl/follow.html rename to src/http/tpl/follow.html diff --git a/srv/src/http/tpl/image.html b/src/http/tpl/image.html similarity index 100% rename from srv/src/http/tpl/image.html rename to src/http/tpl/image.html diff --git a/srv/src/http/tpl/index.html b/src/http/tpl/index.html similarity index 100% rename from srv/src/http/tpl/index.html rename to src/http/tpl/index.html diff --git a/srv/src/http/tpl/post.html b/src/http/tpl/post.html similarity index 100% rename from srv/src/http/tpl/post.html rename to src/http/tpl/post.html diff --git a/srv/src/http/tpl/posts.html b/src/http/tpl/posts.html similarity index 100% rename from srv/src/http/tpl/posts.html rename to src/http/tpl/posts.html diff --git a/srv/src/http/tpl/redirect.html b/src/http/tpl/redirect.html similarity index 100% rename from srv/src/http/tpl/redirect.html rename to src/http/tpl/redirect.html diff --git a/srv/src/http/tpl/unsubscribe.html b/src/http/tpl/unsubscribe.html similarity index 100% rename from srv/src/http/tpl/unsubscribe.html rename to src/http/tpl/unsubscribe.html diff --git a/srv/src/mailinglist/mailer.go b/src/mailinglist/mailer.go similarity index 100% rename from srv/src/mailinglist/mailer.go rename to src/mailinglist/mailer.go diff --git a/srv/src/mailinglist/mailinglist.go b/src/mailinglist/mailinglist.go similarity index 100% rename from srv/src/mailinglist/mailinglist.go rename to src/mailinglist/mailinglist.go diff --git a/srv/src/mailinglist/store.go b/src/mailinglist/store.go similarity index 100% rename from srv/src/mailinglist/store.go rename to src/mailinglist/store.go diff --git a/srv/src/mailinglist/store_test.go b/src/mailinglist/store_test.go similarity index 100% rename from srv/src/mailinglist/store_test.go rename to src/mailinglist/store_test.go diff --git a/srv/src/post/asset.go b/src/post/asset.go similarity index 100% rename from srv/src/post/asset.go rename to src/post/asset.go diff --git a/srv/src/post/asset_test.go b/src/post/asset_test.go similarity index 100% rename from srv/src/post/asset_test.go rename to src/post/asset_test.go diff --git a/srv/src/post/draft_post.go b/src/post/draft_post.go similarity index 100% rename from srv/src/post/draft_post.go rename to src/post/draft_post.go diff --git a/srv/src/post/draft_post_test.go b/src/post/draft_post_test.go similarity index 100% rename from srv/src/post/draft_post_test.go rename to src/post/draft_post_test.go diff --git a/srv/src/post/post.go b/src/post/post.go similarity index 100% rename from srv/src/post/post.go rename to src/post/post.go diff --git a/srv/src/post/post_test.go b/src/post/post_test.go similarity index 100% rename from srv/src/post/post_test.go rename to src/post/post_test.go diff --git a/srv/src/post/sql.go b/src/post/sql.go similarity index 100% rename from srv/src/post/sql.go rename to src/post/sql.go diff --git a/srv/src/pow/pow.go b/src/pow/pow.go similarity index 100% rename from srv/src/pow/pow.go rename to src/pow/pow.go diff --git a/srv/src/pow/pow_test.go b/src/pow/pow_test.go similarity index 100% rename from srv/src/pow/pow_test.go rename to src/pow/pow_test.go diff --git a/srv/src/pow/store.go b/src/pow/store.go similarity index 100% rename from srv/src/pow/store.go rename to src/pow/store.go diff --git a/srv/src/pow/store_test.go b/src/pow/store_test.go similarity index 100% rename from srv/src/pow/store_test.go rename to src/pow/store_test.go diff --git a/srv/default.nix b/srv/default.nix deleted file mode 100644 index e6216b3..0000000 --- a/srv/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ - bash, - go, - buildGoModule, - sqlite, - writeScript, - writeText, - stdenv, - - config, -}: rec { - - init = writeText "mediocre-blog-srv-init" '' - - export MEDIOCRE_BLOG_DATA_DIR="${config.dataDir}" - - # mailing list - export MEDIOCRE_BLOG_ML_SMTP_ADDR="${config.mlSMTPAddr}" - export MEDIOCRE_BLOG_ML_SMTP_AUTH="${config.mlSMTPAuth}" - export MEDIOCRE_BLOG_ML_PUBLIC_URL="${config.publicURL}" - - # pow - export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}" - - # http - export MEDIOCRE_BLOG_HTTP_PUBLIC_URL="${config.publicURL}" - export MEDIOCRE_BLOG_HTTP_LISTEN_PROTO="${config.httpListenProto}" - export MEDIOCRE_BLOG_HTTP_LISTEN_ADDR="${config.httpListenAddr}" - export MEDIOCRE_BLOG_HTTP_AUTH_USERS='${builtins.toJSON config.httpAuthUsers}' - export MEDIOCRE_BLOG_HTTP_AUTH_RATELIMIT='${config.httpAuthRatelimit}' - ''; - - build = buildGoModule { - pname = "mediocre-blog-srv"; - version = "dev"; - src = ./src; - vendorSha256 = "sha256:1vazrrg8rs9n8x40c9r53h9qnyxw59xkp0aq7jl15fliigk6q0cr"; - - # disable tests - checkPhase = ''''; - }; - - bin = writeScript "mediocre-blog-srv-bin" '' - #!${bash}/bin/bash - source ${init} - exec ${build}/bin/mediocre-blog "$@" - ''; - - shell = stdenv.mkDerivation { - name = "mediocre-blog-srv-shell"; - buildInputs = [ go sqlite ]; - shellHook = '' - source ${init} - - echo "Loading test data..." - (cd srv/src/cmd/load-test-data && go run main.go) - ''; - }; -} diff --git a/srv-dev-env.sh b/tmp-dev-env.sh similarity index 76% rename from srv-dev-env.sh rename to tmp-dev-env.sh index d41a96d..d95cc7b 100644 --- a/srv-dev-env.sh +++ b/tmp-dev-env.sh @@ -1,3 +1,4 @@ +set -e test_dir="$(mktemp -d)" trap "rm -rf $test_dir" EXIT @@ -10,6 +11,4 @@ test_cfg="(import ./config.nix) // { dataDir=\"${test_dir}/data\"; }" -nix-shell -A srv.shell \ - --arg config "$test_cfg" \ - "$@" +nix-shell -A shell --arg config "$test_cfg" "$@"