Skip to content

enomsg/notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Using Agda in NixOS shell

agda.nix

{ nixpkgs ? import <nixpkgs> {} }:

with nixpkgs;

let
  ghc   = pkgs.haskellPackages.ghcWithPackages
            (p: with p; [ ieee754 ]);
  emacs = pkgs.emacsWithPackages
            (p: with p; [ use-package evil agda2-mode company
                          rainbow-delimiters ]);
  der   = agda.mkDerivation(self: {
    name         = "AgdaEnv";
    buildDepends = [ pkgs.AgdaStdlib ghc emacs ];
  });
in der.env
$ nix-shell agda.nix

Using Agda in Docker

~/bin/so-agda

#!/usr/bin/env bash
set -e

tag=agda
use=(.bashrc .bash-preexec.sh .motd .inputrc .screenrc .emacs.d)
net=${net:-none}

docker-build-cached()
{
    local C=~/.cache/docker-build-cached/"$tag"
    mkdir -p "$C"
    cat > "$C/Dockerfile.new"
    if ! cmp "$C"/Dockerfile{,.new} 2> /dev/null ; then
        docker build -t "$tag" -f "$C/Dockerfile.new" "$C" || return 1
        mv "$C"/Dockerfile{.new,}
    fi
}

docker-build-cached << EOF_DOCKERFILE
from debian:buster

run apt-get update

run apt-get install -y locales
run echo en_US.UTF-8 UTF-8 > /etc/locale.gen
run dpkg-reconfigure locales --frontend=noninteractive

run apt-get install -y screen
run apt-get install -y emacs
run apt-get install -y elpa-evil
run apt-get install -y elpa-company
run apt-get install -y elpa-rainbow-delimiters
run apt-get install -y elpa-use-package

run apt-get install -y agda-bin
run apt-get install -y agda-stdlib
run apt-get install -y elpa-agda2-mode

run useradd -m -s /bin/bash user
env SHELL /bin/bash
env LANG en_US.UTF-8
env LC_CTYPE en_US.UTF8

user user
run mkdir -p ~/.emacs.d
run echo "(package-initialize)" \
         "(require 'agda2-mode nil t)" \
         "(when (require 'evil) nil t (evil-mode 1))" \
         >> ~/.emacs.d/init.el
cmd bash
EOF_DOCKERFILE

xhost +SI:localuser:"$USER" > /dev/null 2>&1 || true

vs=()
for f in "${use[@]}"; do
    [ -e "$HOME/$f" ] && vs=("${vs[@]}" "-v" "$HOME/$f:/home/user/$f:ro")
done

docker run \
    "${vs[@]}" \
    --network "$net" \
    -e TERM="$TERM" \
    -e DISPLAY="$DISPLAY" \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -v "$PWD":/home/user/cwd \
    -w /home/user/cwd \
    -it "$tag" "$@"
$ chmod +x ~/bin/so-agda
$ so-agda

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published