├── .gitignore ├── .perltidyrc ├── .proverc ├── Dockerfile ├── README.md ├── bin ├── bootstrap ├── bootstrap-fast ├── cover ├── crafty ├── env └── migrate ├── cpanfile ├── data └── config.yml.example ├── docker └── entrypoint.sh ├── examples └── github │ ├── github-create-status.sh │ └── github-webhook.sh ├── images └── screencast1.gif ├── lib ├── Crafty.pm └── Crafty │ ├── Action │ ├── API │ │ ├── Base.pm │ │ ├── BuildLog.pm │ │ ├── BuildTail.pm │ │ ├── CancelBuild.pm │ │ ├── CreateBuild.pm │ │ ├── CreateEvent.pm │ │ ├── GetBuild.pm │ │ ├── Index.pm │ │ ├── ListBuilds.pm │ │ ├── RestartBuild.pm │ │ └── WatchEvents.pm │ ├── Base.pm │ ├── Build.pm │ ├── Cancel.pm │ ├── Download.pm │ ├── Index.pm │ ├── Login.pm │ ├── Logout.pm │ ├── Restart.pm │ └── Webhook.pm │ ├── Build.pm │ ├── Config.pm │ ├── DB.pm │ ├── Log.pm │ ├── Middleware │ ├── Access.pm │ ├── Routes.pm │ └── User.pm │ ├── Pager.pm │ ├── Password.pm │ ├── Pool.pm │ ├── PubSub.pm │ ├── Runner.pm │ ├── Tail.pm │ └── Worker.pm ├── public ├── css │ ├── bootstrap.min.css │ ├── ie10-viewport-bug-workaround.css │ └── styles.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── glyphicons-halflings-regular.woff2 │ └── ostrich-sans-regular.woff ├── img │ ├── github.png │ └── loader.gif └── js │ ├── eventbus.js │ ├── events.js │ ├── lib │ ├── EventSource.js │ ├── bootstrap.min.js │ ├── ie10-viewport-bug-workaround.js │ ├── jquery.min.js │ ├── moment.min.js │ ├── mustache.min.js │ └── require.js │ └── main.js ├── schema ├── 00schema.sql ├── 01branch-to-ref.sql └── config.yml ├── t ├── action │ ├── login.t │ ├── logout.t │ └── webhook.t ├── api │ ├── build_log.t │ ├── build_tail.t │ ├── cancel_build.t │ ├── create_build.t │ ├── create_event.t │ ├── index.t │ ├── list_builds.t │ └── restart_build.t ├── app.t ├── build.t ├── db.t ├── functional │ └── api │ │ └── list_builds.t ├── lib │ └── TestSetup.pm ├── middleware │ ├── access.t │ └── user.t ├── pager.t ├── password.t ├── pool.t └── pub_sub.t ├── templates ├── build.caml ├── include │ └── build.caml ├── index.caml ├── layout.caml └── login.caml └── util ├── cpanm ├── cpm ├── docker-build.sh ├── docker-push-latest.sh ├── docker-run.sh ├── hash-password.pl └── mimi /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/.gitignore -------------------------------------------------------------------------------- /.perltidyrc: -------------------------------------------------------------------------------- 1 | -l=120 2 | -pt=2 3 | -------------------------------------------------------------------------------- /.proverc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/.proverc -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/Dockerfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/README.md -------------------------------------------------------------------------------- /bin/bootstrap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/bootstrap -------------------------------------------------------------------------------- /bin/bootstrap-fast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/bootstrap-fast -------------------------------------------------------------------------------- /bin/cover: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/cover -------------------------------------------------------------------------------- /bin/crafty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/crafty -------------------------------------------------------------------------------- /bin/env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/env -------------------------------------------------------------------------------- /bin/migrate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/bin/migrate -------------------------------------------------------------------------------- /cpanfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/cpanfile -------------------------------------------------------------------------------- /data/config.yml.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/data/config.yml.example -------------------------------------------------------------------------------- /docker/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/docker/entrypoint.sh -------------------------------------------------------------------------------- /examples/github/github-create-status.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/examples/github/github-create-status.sh -------------------------------------------------------------------------------- /examples/github/github-webhook.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/examples/github/github-webhook.sh -------------------------------------------------------------------------------- /images/screencast1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/images/screencast1.gif -------------------------------------------------------------------------------- /lib/Crafty.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/Base.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/Base.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/BuildLog.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/BuildLog.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/BuildTail.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/BuildTail.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/CancelBuild.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/CancelBuild.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/CreateBuild.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/CreateBuild.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/CreateEvent.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/CreateEvent.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/GetBuild.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/GetBuild.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/Index.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/Index.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/ListBuilds.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/ListBuilds.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/RestartBuild.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/RestartBuild.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/API/WatchEvents.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/API/WatchEvents.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Base.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Base.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Build.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Build.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Cancel.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Cancel.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Download.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Download.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Index.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Index.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Login.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Login.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Logout.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Logout.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Restart.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Restart.pm -------------------------------------------------------------------------------- /lib/Crafty/Action/Webhook.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Action/Webhook.pm -------------------------------------------------------------------------------- /lib/Crafty/Build.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Build.pm -------------------------------------------------------------------------------- /lib/Crafty/Config.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Config.pm -------------------------------------------------------------------------------- /lib/Crafty/DB.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/DB.pm -------------------------------------------------------------------------------- /lib/Crafty/Log.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Log.pm -------------------------------------------------------------------------------- /lib/Crafty/Middleware/Access.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Middleware/Access.pm -------------------------------------------------------------------------------- /lib/Crafty/Middleware/Routes.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Middleware/Routes.pm -------------------------------------------------------------------------------- /lib/Crafty/Middleware/User.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Middleware/User.pm -------------------------------------------------------------------------------- /lib/Crafty/Pager.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Pager.pm -------------------------------------------------------------------------------- /lib/Crafty/Password.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Password.pm -------------------------------------------------------------------------------- /lib/Crafty/Pool.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Pool.pm -------------------------------------------------------------------------------- /lib/Crafty/PubSub.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/PubSub.pm -------------------------------------------------------------------------------- /lib/Crafty/Runner.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Runner.pm -------------------------------------------------------------------------------- /lib/Crafty/Tail.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Tail.pm -------------------------------------------------------------------------------- /lib/Crafty/Worker.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/lib/Crafty/Worker.pm -------------------------------------------------------------------------------- /public/css/bootstrap.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/css/bootstrap.min.css -------------------------------------------------------------------------------- /public/css/ie10-viewport-bug-workaround.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/css/ie10-viewport-bug-workaround.css -------------------------------------------------------------------------------- /public/css/styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/css/styles.css -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/glyphicons-halflings-regular.svg -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/fonts/ostrich-sans-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/fonts/ostrich-sans-regular.woff -------------------------------------------------------------------------------- /public/img/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/img/github.png -------------------------------------------------------------------------------- /public/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/img/loader.gif -------------------------------------------------------------------------------- /public/js/eventbus.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/eventbus.js -------------------------------------------------------------------------------- /public/js/events.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/events.js -------------------------------------------------------------------------------- /public/js/lib/EventSource.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/EventSource.js -------------------------------------------------------------------------------- /public/js/lib/bootstrap.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/bootstrap.min.js -------------------------------------------------------------------------------- /public/js/lib/ie10-viewport-bug-workaround.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/ie10-viewport-bug-workaround.js -------------------------------------------------------------------------------- /public/js/lib/jquery.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/jquery.min.js -------------------------------------------------------------------------------- /public/js/lib/moment.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/moment.min.js -------------------------------------------------------------------------------- /public/js/lib/mustache.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/mustache.min.js -------------------------------------------------------------------------------- /public/js/lib/require.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/lib/require.js -------------------------------------------------------------------------------- /public/js/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/public/js/main.js -------------------------------------------------------------------------------- /schema/00schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/schema/00schema.sql -------------------------------------------------------------------------------- /schema/01branch-to-ref.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/schema/01branch-to-ref.sql -------------------------------------------------------------------------------- /schema/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/schema/config.yml -------------------------------------------------------------------------------- /t/action/login.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/action/login.t -------------------------------------------------------------------------------- /t/action/logout.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/action/logout.t -------------------------------------------------------------------------------- /t/action/webhook.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/action/webhook.t -------------------------------------------------------------------------------- /t/api/build_log.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/build_log.t -------------------------------------------------------------------------------- /t/api/build_tail.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/build_tail.t -------------------------------------------------------------------------------- /t/api/cancel_build.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/cancel_build.t -------------------------------------------------------------------------------- /t/api/create_build.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/create_build.t -------------------------------------------------------------------------------- /t/api/create_event.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/create_event.t -------------------------------------------------------------------------------- /t/api/index.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/index.t -------------------------------------------------------------------------------- /t/api/list_builds.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/list_builds.t -------------------------------------------------------------------------------- /t/api/restart_build.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/api/restart_build.t -------------------------------------------------------------------------------- /t/app.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/app.t -------------------------------------------------------------------------------- /t/build.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/build.t -------------------------------------------------------------------------------- /t/db.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/db.t -------------------------------------------------------------------------------- /t/functional/api/list_builds.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/functional/api/list_builds.t -------------------------------------------------------------------------------- /t/lib/TestSetup.pm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/lib/TestSetup.pm -------------------------------------------------------------------------------- /t/middleware/access.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/middleware/access.t -------------------------------------------------------------------------------- /t/middleware/user.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/middleware/user.t -------------------------------------------------------------------------------- /t/pager.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/pager.t -------------------------------------------------------------------------------- /t/password.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/password.t -------------------------------------------------------------------------------- /t/pool.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/pool.t -------------------------------------------------------------------------------- /t/pub_sub.t: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/t/pub_sub.t -------------------------------------------------------------------------------- /templates/build.caml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/templates/build.caml -------------------------------------------------------------------------------- /templates/include/build.caml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/templates/include/build.caml -------------------------------------------------------------------------------- /templates/index.caml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/templates/index.caml -------------------------------------------------------------------------------- /templates/layout.caml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/templates/layout.caml -------------------------------------------------------------------------------- /templates/login.caml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/templates/login.caml -------------------------------------------------------------------------------- /util/cpanm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/cpanm -------------------------------------------------------------------------------- /util/cpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/cpm -------------------------------------------------------------------------------- /util/docker-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | docker build . --tag crafty 4 | -------------------------------------------------------------------------------- /util/docker-push-latest.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/docker-push-latest.sh -------------------------------------------------------------------------------- /util/docker-run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/docker-run.sh -------------------------------------------------------------------------------- /util/hash-password.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/hash-password.pl -------------------------------------------------------------------------------- /util/mimi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vti/crafty/HEAD/util/mimi --------------------------------------------------------------------------------