### setup ### packages: sudo aptitude install -y \ audacity \ coffeescript \ curl \ git \ libblas-dev \ libcairo2-dev \ libffi-dev \ libjpeg8-dev \ liblapack-dev \ libssl-dev \ libzmq3-dev \ mercurial \ nginx-core \ nginx-full \ normalize-audio \ npm \ python3-cairo-dev \ python3-dev \ python3-opencv \ python3-pygame \ python3-tk \ tix \ zlib1g-dev gst_packages: sudo aptitude install -y \ gir1.2-goocanvas-2.0 \ gir1.2-gst-plugins-base-1.0 \ gir1.2-gstreamer-1.0 \ gstreamer1.0-plugins-good \ gstreamer1.0-pulseaudio \ gstreamer1.0-tools \ libgirepository-1.0-1 \ libgirepository1.0-dev \ python3-gi \ python3-gst-1.0 pnpm: # holding pnpm back because we don't have the latest nodejs: https://pnpm.io/installation#compatibility sudo npm install -g pnpm@6.32.12 bin/node: ln -sf `which nodejs` bin/node pdm_local_install: # drew has ~/bin in $PATH pip install "pdm==1.15.0" ln -s ../.local/bin/pdm ~/bin js: pnpm install --reporter append-only py: pdm sync setup: packages gst_packages pnpm js py deps: js py tkdnd_build: # get tkdnd r95 with subversion # then apply tkdnd-patch-on-r95 to that cd tkdnd/trunk ./configure make push_github: hg bookmark -r default main && hg push git+ssh://git@github.com/drewp/light9.git pull_github: hg pull git+ssh://git@github.com/drewp/light9.git ### build ### coffee: zsh -c 'cd light9/web; ../../node_modules/coffeescript/bin/coffee --map -cw {.,live,timeline,paint,effects}/*.coffee' ### show ### qlc_artnet_dmx_proxy: qlcplus --open cur/qlc.qxw no_screen_blanking: xset s off xset -dpms darcs_show_checkpoint: darcs add --quiet --recursive ${LIGHT9_SHOW} darcs rec -a -m "checkpoint show data" ${LIGHT9_SHOW} ### pi setup ### raspberry_pi_packages: sudo apt-get install python3-picamera python3-dev python3-twisted python3-virtualenv raspberry_pi_virtualenv: mkdir -p env_pi virtualenv -p /usr/bin/python3 --system-site-packages env_pi env_pi/bin/pip install cyclone 'coloredlogs==6.0' ### arduino build ### /usr/share/arduino/Arduino.mk: sudo aptitude install arduino-mk arduino_upload: /usr/share/arduino/Arduino.mk cd rgbled make upload ### testing ### NOSEARGS="--no-path-adjustment light9.rdfdb.rdflibpatch light9.rdfdb.patch light9.effecteval.test_effect light9.collector light9.rdfdb.graphfile_test light9.paint light9.effect" tests: eval pdm run nosetests -x $(NOSEARGS) tests_watch: eval pdm run nosetests --with-watcher $(NOSEARGS) tests_coverage: eval pdm run nosetests --with-coverage --cover-erase --cover-html --cover-html-dir=/tmp/light9-cov/ --cover-package=light9 --cover-branches $(NOSEARGS) test_js_init: npm install test_js: pnpx coffee -c light9/web/*.coffee pnpx mocha --compilers coffee:coffee-script/register --globals window,N3 light9/web/graph_test.coffee test_js_watch: # have coffee continuously running watch -c pnpx mocha --compilers coffee:coffee-script/register --globals window,N3 light9/web/graph_test.coffee --colors profile_seq: echo in lib, get https://github.com/uber/pyflame.git and https://github.com/brendangregg/FlameGraph.git sudo lib/pyflame/src/pyflame -s 10 -p `pgrep -f effectsequencer` | perl -lpe 's,/home/drewp/projects-local/light9/,,g; s,env/local/lib/python2.7/site-packages/,,g;' | lib/FlameGraph/flamegraph.pl --width 2500 > /tmp/fl.svg