summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lass@blue.r>2018-09-04 20:53:12 +0200
committerlassulus <lass@blue.r>2018-09-04 20:53:12 +0200
commit96c4ab61202f515c7a361ef76c398e542771d6b4 (patch)
treece2ca90d0ae800bb3ba3e1b05593e7ba7bef104c
parente183bb1c80c42131f9e3d932985e413ef457f77a (diff)
parent481376c1509661cbf1bdb17b9887b3a4f0487b6f (diff)
Merge remote-tracking branch 'gum/master'
-rw-r--r--.gitlab-ci.yml14
-rw-r--r--krebs/1systems/wolf/config.nix3
-rw-r--r--krebs/2configs/shack/mobile.mpd.nix32
-rw-r--r--krebs/3modules/retiolum-bootstrap.nix5
-rw-r--r--makefu/1systems/cake/source.nix2
-rw-r--r--makefu/1systems/darth/source.nix2
-rw-r--r--makefu/1systems/drop/config.nix2
-rw-r--r--makefu/1systems/drop/source.nix2
-rw-r--r--makefu/1systems/fileleech/config.nix4
-rw-r--r--makefu/1systems/fileleech/source.nix2
-rw-r--r--makefu/1systems/filepimp/source.nix2
-rw-r--r--makefu/1systems/full/source.nix5
-rw-r--r--makefu/1systems/gum/source.nix2
-rw-r--r--makefu/1systems/iso/source.nix2
-rw-r--r--makefu/1systems/kexec/source.nix2
-rw-r--r--makefu/1systems/latte/source.nix2
-rw-r--r--makefu/1systems/nextgum/source.nix2
-rw-r--r--makefu/1systems/omo/source.nix2
-rw-r--r--makefu/1systems/pnp/source.nix2
-rw-r--r--makefu/1systems/repunit/source.nix2
-rw-r--r--makefu/1systems/sdev/source.nix2
-rw-r--r--makefu/1systems/shack-autoinstall/source.nix3
-rw-r--r--makefu/1systems/shoney/config.nix2
-rw-r--r--makefu/1systems/shoney/source.nix2
-rw-r--r--makefu/1systems/studio/source.nix2
-rw-r--r--makefu/1systems/tsp/source.nix4
-rw-r--r--makefu/1systems/vbob/source.nix2
-rw-r--r--makefu/1systems/wbob/config.nix2
-rw-r--r--makefu/1systems/wbob/source.nix2
-rw-r--r--makefu/1systems/wry/config.nix2
-rw-r--r--makefu/1systems/wry/source.nix2
-rw-r--r--makefu/1systems/x/source.nix3
-rw-r--r--makefu/2configs/deployment/events-publisher/default.nix4
-rw-r--r--makefu/2configs/editor/vim.nix33
-rw-r--r--makefu/2configs/editor/vimrc98
-rw-r--r--makefu/2configs/hw/smartcard.nix18
-rw-r--r--makefu/2configs/nginx/rompr.nix76
-rw-r--r--makefu/2configs/tools/extra-gui.nix1
-rw-r--r--makefu/2configs/vim.nix136
-rw-r--r--makefu/5pkgs/arduino-user-env/default.nix35
-rw-r--r--makefu/5pkgs/beef/Gemfile56
-rw-r--r--makefu/5pkgs/beef/Gemfile.lock101
-rw-r--r--makefu/5pkgs/beef/db-in-homedir.patch39
-rw-r--r--makefu/5pkgs/beef/default.nix22
-rw-r--r--makefu/5pkgs/beef/gemset.nix238
-rw-r--r--makefu/5pkgs/bento4/default.nix30
-rw-r--r--makefu/5pkgs/cozy-audiobooks/default.nix99
-rw-r--r--makefu/5pkgs/default.nix10
-rw-r--r--makefu/5pkgs/drozer/default.nix9
-rw-r--r--makefu/5pkgs/ifdnfc/default.nix45
-rw-r--r--makefu/5pkgs/nur.nix7
-rw-r--r--makefu/krops.nix88
-rw-r--r--makefu/nixpkgs.json7
-rwxr-xr-xmakefu/update-channel.sh9
54 files changed, 957 insertions, 323 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f2f28d65..1946f269e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,19 @@
+before_script:
+ - mkdir -p ~/.ssh
+ - echo "$deploy_privkey" > deploy.key
+ - export GIT_SSH_COMMAND="ssh -i $PWD/deploy.key"
+ - chmod 600 deploy.key
+ - ssh-keyscan -H 'github.com' >> ~/.ssh/known_hosts
nix-shell test:
script:
- env
- nix-shell --pure --command 'true' -p stdenv && echo success
- nix-shell --pure --command 'false' -p stdenv || echo success
+nur-packages makefu:
+ script:
+ - git reset --hard origin/master
+ - git filter-branch -f --prune-empty --subdirectory-filter makefu/5pkgs HEAD
+ - git remote add deploy git@github.com:makefu/nur-packages.git || git remote set-url deploy git@github.com:makefu/nur-packages.git
+ - git push --force deploy HEAD:master
+after_script:
+ - rm -f deploy.key
diff --git a/krebs/1systems/wolf/config.nix b/krebs/1systems/wolf/config.nix
index 6addb0818..914b38051 100644
--- a/krebs/1systems/wolf/config.nix
+++ b/krebs/1systems/wolf/config.nix
@@ -25,6 +25,7 @@ in
<stockholm/krebs/2configs/shack/muell_caller.nix>
<stockholm/krebs/2configs/shack/radioactive.nix>
<stockholm/krebs/2configs/shack/share.nix>
+ <stockholm/krebs/2configs/shack/mobile.mpd.nix>
{
systemd.services.telegraf.path = [ pkgs.net_snmp ]; # for snmptranslate
systemd.services.telegraf.environment = {
@@ -114,7 +115,7 @@ in
networking = {
firewall.enable = false;
firewall.allowedTCPPorts = [ 8088 8086 8083 ];
- interfaces."${ext-if}".ip4 = [{
+ interfaces."${ext-if}".ipv4.addresses = [{
address = shack-ip;
prefixLength = 20;
}];
diff --git a/krebs/2configs/shack/mobile.mpd.nix b/krebs/2configs/shack/mobile.mpd.nix
new file mode 100644
index 000000000..2dc466edb
--- /dev/null
+++ b/krebs/2configs/shack/mobile.mpd.nix
@@ -0,0 +1,32 @@
+{lib,pkgs, ... }:
+let
+ mpdHost = "mpd.shack";
+ ympd = name: port: let
+ webPort = 10000 + port;
+ in {
+ systemd.services."ympd-${name}" = {
+ description = "mpd for ${name}";
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig.ExecStart = "${pkgs.ympd}/bin/ympd --host ${mpdHost} --port ${toString port} --webport ${toString webPort} --user nobody";
+ };
+ services.nginx.virtualHosts."mobile.${name}.mpd.shack" = {
+ serverAliases = [
+ "${name}.mpd.wolf.r"
+ "${name}.mpd.wolf.shack"
+ ];
+ locations."/".proxyPass = "http://localhost:${toString webPort}";
+ };
+ };
+in lib.mkMerge [{
+ services.nginx.enable = true;
+}
+ (ympd "lounge" 6600)
+ (ympd "seminarraum" 6601)
+ (ympd "elab" 6602)
+ (ympd "kueche" 6603)
+ (ympd "crafting" 6604)
+ (ympd "fablab" 6605)
+ (ympd "workshop" 6606)
+ (ympd "klo" 6607)
+
+]
diff --git a/krebs/3modules/retiolum-bootstrap.nix b/krebs/3modules/retiolum-bootstrap.nix
index 53b06a702..faa3dd714 100644
--- a/krebs/3modules/retiolum-bootstrap.nix
+++ b/krebs/3modules/retiolum-bootstrap.nix
@@ -31,11 +31,8 @@ in
enable = mkDefault true;
virtualHosts.retiolum-bootstrap = {
inherit (cfg) serverName sslCertificate sslCertificateKey;
- enableSSL = true;
+ forceSSL = true;
extraConfig =''
- if ($scheme = http){
- return 301 https://$server_name$request_uri;
- }
root ${pkgs.retiolum-bootstrap};
try_files $uri $uri/retiolum.sh;
diff --git a/makefu/1systems/cake/source.nix b/makefu/1systems/cake/source.nix
index cd97a7c62..22c40039e 100644
--- a/makefu/1systems/cake/source.nix
+++ b/makefu/1systems/cake/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="cake";
full = true;
}
diff --git a/makefu/1systems/darth/source.nix b/makefu/1systems/darth/source.nix
index b13b6c603..a8d7368ab 100644
--- a/makefu/1systems/darth/source.nix
+++ b/makefu/1systems/darth/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="darth";
}
diff --git a/makefu/1systems/drop/config.nix b/makefu/1systems/drop/config.nix
index b7e0d0395..2757db8cc 100644
--- a/makefu/1systems/drop/config.nix
+++ b/makefu/1systems/drop/config.nix
@@ -30,7 +30,7 @@ in {
allowedTCPPorts = [ ];
allowedUDPPorts = [ 655 ];
};
- interfaces.enp0s3.ip4 = [{
+ interfaces.enp0s3.ipv4.addresses = [{
address = external-ip;
inherit prefixLength;
}];
diff --git a/makefu/1systems/drop/source.nix b/makefu/1systems/drop/source.nix
index 45bd6f97e..a6bc834b0 100644
--- a/makefu/1systems/drop/source.nix
+++ b/makefu/1systems/drop/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="drop";
torrent = true;
}
diff --git a/makefu/1systems/fileleech/config.nix b/makefu/1systems/fileleech/config.nix
index e36afecd5..7e9dea9ec 100644
--- a/makefu/1systems/fileleech/config.nix
+++ b/makefu/1systems/fileleech/config.nix
@@ -145,13 +145,13 @@ in {
networking.nameservers = [ "8.8.8.8" ];
# SPF
networking.defaultGateway = "151.217.176.1";
- networking.interfaces.enp6s0f0.ip4 = [{
+ networking.interfaces.enp6s0f0.ipv4.addresses = [{
address = "151.217.178.63";
prefixLength = 22;
}];
# Gigabit
- networking.interfaces.enp8s0f1.ip4 = [{
+ networking.interfaces.enp8s0f1.ipv4.addresses = [{
address = "192.168.126.1";
prefixLength = 24;
}];
diff --git a/makefu/1systems/fileleech/source.nix b/makefu/1systems/fileleech/source.nix
index caca1fbcb..b6951a273 100644
--- a/makefu/1systems/fileleech/source.nix
+++ b/makefu/1systems/fileleech/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name = "fileleech";
torrent = true;
}
diff --git a/makefu/1systems/filepimp/source.nix b/makefu/1systems/filepimp/source.nix
index 88c9f4f08..b81a2bf4a 100644
--- a/makefu/1systems/filepimp/source.nix
+++ b/makefu/1systems/filepimp/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="filepimp";
}
diff --git a/makefu/1systems/full/source.nix b/makefu/1systems/full/source.nix
new file mode 100644
index 000000000..1e36c6e87
--- /dev/null
+++ b/makefu/1systems/full/source.nix
@@ -0,0 +1,5 @@
+{
+ name="gum";
+ torrent = true;
+ clever_kexec = true;
+}
diff --git a/makefu/1systems/gum/source.nix b/makefu/1systems/gum/source.nix
index e3ca472e4..1e36c6e87 100644
--- a/makefu/1systems/gum/source.nix
+++ b/makefu/1systems/gum/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="gum";
torrent = true;
clever_kexec = true;
diff --git a/makefu/1systems/iso/source.nix b/makefu/1systems/iso/source.nix
index e200dbfd2..6bef8ada9 100644
--- a/makefu/1systems/iso/source.nix
+++ b/makefu/1systems/iso/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="iso";
}
diff --git a/makefu/1systems/kexec/source.nix b/makefu/1systems/kexec/source.nix
index e200dbfd2..6bef8ada9 100644
--- a/makefu/1systems/kexec/source.nix
+++ b/makefu/1systems/kexec/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="iso";
}
diff --git a/makefu/1systems/latte/source.nix b/makefu/1systems/latte/source.nix
index d9600909a..ab0a454c0 100644
--- a/makefu/1systems/latte/source.nix
+++ b/makefu/1systems/latte/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name = "latte";
torrent = true;
}
diff --git a/makefu/1systems/nextgum/source.nix b/makefu/1systems/nextgum/source.nix
index 413889c47..6940498f1 100644
--- a/makefu/1systems/nextgum/source.nix
+++ b/makefu/1systems/nextgum/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="nextgum";
torrent = true;
clever_kexec = true;
diff --git a/makefu/1systems/omo/source.nix b/makefu/1systems/omo/source.nix
index da0d87aad..0d42cc9e2 100644
--- a/makefu/1systems/omo/source.nix
+++ b/makefu/1systems/omo/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="omo";
torrent = true;
}
diff --git a/makefu/1systems/pnp/source.nix b/makefu/1systems/pnp/source.nix
index 0b630aa3b..02f7d0ab6 100644
--- a/makefu/1systems/pnp/source.nix
+++ b/makefu/1systems/pnp/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="pnp";
}
diff --git a/makefu/1systems/repunit/source.nix b/makefu/1systems/repunit/source.nix
index ff361fb55..20d3cd1cb 100644
--- a/makefu/1systems/repunit/source.nix
+++ b/makefu/1systems/repunit/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="repunit";
}
diff --git a/makefu/1systems/sdev/source.nix b/makefu/1systems/sdev/source.nix
index 833d9bf73..2e085740a 100644
--- a/makefu/1systems/sdev/source.nix
+++ b/makefu/1systems/sdev/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="sdev";
}
diff --git a/makefu/1systems/shack-autoinstall/source.nix b/makefu/1systems/shack-autoinstall/source.nix
new file mode 100644
index 000000000..6bef8ada9
--- /dev/null
+++ b/makefu/1systems/shack-autoinstall/source.nix
@@ -0,0 +1,3 @@
+{
+ name="iso";
+}
diff --git a/makefu/1systems/shoney/config.nix b/makefu/1systems/shoney/config.nix
index ba9d0911e..27d389b85 100644
--- a/makefu/1systems/shoney/config.nix
+++ b/makefu/1systems/shoney/config.nix
@@ -46,7 +46,7 @@ in {
dst = "10.8.10.6";
};
networking = {
- interfaces.enp2s1.ip4 = [
+ interfaces.enp2s1.ipv4.addresses = [
{ address = ip; prefixLength = 24; }
# { address = alt-ip; prefixLength = 24; }
];
diff --git a/makefu/1systems/shoney/source.nix b/makefu/1systems/shoney/source.nix
index 382474f5e..3616716f9 100644
--- a/makefu/1systems/shoney/source.nix
+++ b/makefu/1systems/shoney/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="shoney";
}
diff --git a/makefu/1systems/studio/source.nix b/makefu/1systems/studio/source.nix
index f662653e7..ff88d3557 100644
--- a/makefu/1systems/studio/source.nix
+++ b/makefu/1systems/studio/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="studio";
musnix = true;
}
diff --git a/makefu/1systems/tsp/source.nix b/makefu/1systems/tsp/source.nix
index 79f6a435d..9abf503e2 100644
--- a/makefu/1systems/tsp/source.nix
+++ b/makefu/1systems/tsp/source.nix
@@ -1,3 +1,5 @@
-import <stockholm/makefu/source.nix> {
+{
name="tsp";
+ full = true;
+ hw = true;
}
diff --git a/makefu/1systems/vbob/source.nix b/makefu/1systems/vbob/source.nix
index 5419215e2..59744faf5 100644
--- a/makefu/1systems/vbob/source.nix
+++ b/makefu/1systems/vbob/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="vbob";
# musnix = true;
}
diff --git a/makefu/1systems/wbob/config.nix b/makefu/1systems/wbob/config.nix
index 9d8a91e6d..e1d66a2f9 100644
--- a/makefu/1systems/wbob/config.nix
+++ b/makefu/1systems/wbob/config.nix
@@ -150,7 +150,7 @@ in {
# rt2870 with nonfree creates wlp2s0 from wlp0s20u2
# not explicitly setting the interface results in wpa_supplicant to crash
networking.wireless.interfaces = [ "wlp2s0" ];
- networking.interfaces.virbr1.ip4 = [{
+ networking.interfaces.virbr1.ipv4.addresses = [{
address = "10.8.8.11";
prefixLength = 24;
}];
diff --git a/makefu/1systems/wbob/source.nix b/makefu/1systems/wbob/source.nix
index b768aa87d..c76f73760 100644
--- a/makefu/1systems/wbob/source.nix
+++ b/makefu/1systems/wbob/source.nix
@@ -1,4 +1,4 @@
-import <stockholm/makefu/source.nix> {
+{
name="wbob";
# musnix = true;
}
diff --git a/makefu/1systems/wry/config.nix b/makefu/1systems/wry/config.nix
index 2db1a9a95..b728703ec 100644
--- a/makefu/1systems/wry/config.nix
+++ b/makefu/1systems/wry/config.nix
@@ -42,7 +42,7 @@ in {
allowedTCPPorts = [ 53 80 443 ];
allowedUDPPorts = [ 655 53 ];
};
- interfaces.enp2s1.ip4 = [{
+ interfaces.enp2s1.ipv4.addresses = [{
address = external-ip;
prefixLength = 24;
}];
diff --git a/makefu/1systems/wry/source.nix b/makefu/1systems/wry/source.nix
index fac3877ee..730300590 100644
--- a/makefu/1systems/wry/source.nix
+++ b/makefu/1systems/wry/source.nix
@@ -1,3 +1,3 @@
-import <stockholm/makefu/source.nix> {
+{
name="wry";
}
diff --git a/makefu/1systems/x/source.nix b/makefu/1systems/x/source.nix
index ab6429dc1..75af3255b 100644
--- a/makefu/1systems/x/source.nix
+++ b/makefu/1systems/x/source.nix
@@ -1,9 +1,10 @@
-import <stockholm/makefu/source.nix> {
+{
name="x";
full = true;
python = true;
hw = true;
unstable = true;
mic92 = true;
+ clever_kexec = true;
# torrent = true;
}
diff --git a/makefu/2configs/deployment/events-publisher/default.nix b/makefu/2configs/deployment/events-publisher/default.nix
index c671b1a0b..a09554e6a 100644
--- a/makefu/2configs/deployment/events-publisher/default.nix
+++ b/makefu/2configs/deployment/events-publisher/default.nix
@@ -2,8 +2,8 @@
with import <stockholm/lib>;
let
shack-announce = pkgs.callPackage (builtins.fetchTarball {
- url = "https://github.com/makefu/events-publisher/archive/5e7b083c63f25182a02c1fddb3d32cb9534fbc50.tar.gz";
- sha256 = "1zzlhyj8fr6y3a3b6qlyrm474xxxs1ydqjpkd2jva3g1lnzlmvkp";
+ url = "https://github.com/makefu/events-publisher/archive/4cef900ba10348050208367af6b2035f5a0ef8b6.tar.gz";
+ sha256 = "137vsibr289p3xxlw37xhizi309sygki95919hmj02dxgwmy1k74";
}) {} ;
home = "/var/lib/shackannounce";
user = "shackannounce";
diff --git a/makefu/2configs/editor/vim.nix b/makefu/2configs/editor/vim.nix
new file mode 100644
index 000000000..d14a611b4
--- /dev/null
+++ b/makefu/2configs/editor/vim.nix
@@ -0,0 +1,33 @@
+{ config, pkgs, ... }:
+
+let
+ customPlugins.vim-better-whitespace = pkgs.vimUtils.buildVimPlugin {
+ name = "vim-better-whitespace";
+ src = pkgs.fetchFromGitHub {
+ owner = "ntpeters";
+ repo = "vim-better-whitespace";
+ rev = "984c8da518799a6bfb8214e1acdcfd10f5f1eed7";
+ sha256 = "10l01a8xaivz6n01x6hzfx7gd0igd0wcf9ril0sllqzbq7yx2bbk";
+ };
+ };
+
+in {
+
+ environment.systemPackages = [
+ pkgs.python27Full # required for youcompleteme
+ (pkgs.vim_configurable.customize {
+ name = "vim";
+
+ vimrcConfig.customRC = builtins.readFile ./vimrc;
+ vimrcConfig.vam.knownPlugins = pkgs.vimPlugins // customPlugins;
+ vimrcConfig.vam.pluginDictionaries = [
+ { names = [ "undotree"
+ # "YouCompleteMe"
+ "vim-better-whitespace" ]; }
+ # vim-nix handles indentation better but does not perform sanity
+ { names = [ "vim-addon-nix" ]; ft_regex = "^nix\$"; }
+ ];
+
+ })
+ ];
+}
diff --git a/makefu/2configs/editor/vimrc b/makefu/2configs/editor/vimrc
new file mode 100644
index 000000000..8cdab55db
--- /dev/null
+++ b/makefu/2configs/editor/vimrc
@@ -0,0 +1,98 @@
+set nocompatible
+syntax on
+set list
+set listchars=tab:▸\
+"set list listchars=tab:>-,trail:.,extends:>
+
+filetype off
+filetype plugin indent on
+
+colorscheme darkblue
+set background=dark
+
+set number
+set relativenumber
+set mouse=a
+set ignorecase
+set incsearch
+set wildignore=*.o,*.obj,*.bak,*.exe,*.os
+set textwidth=79
+set shiftwidth=2
+set expandtab
+set softtabstop=2
+set shiftround
+set smarttab
+set tabstop=2
+set et
+set autoindent
+set backspace=indent,eol,start
+
+
+inoremap <F1> <ESC>
+nnoremap <F1> <ESC>
+vnoremap <F1> <ESC>
+
+nnoremap <F5> :UndotreeToggle<CR>
+set undodir =~/.vim/undo
+set undofile
+"maximum number of changes that can be undone
+set undolevels=1000000
+"maximum number lines to save for undo on a buffer reload
+set undoreload=10000000
+
+nnoremap <F2> :set invpaste paste?<CR>
+set pastetoggle=<F2>
+set showmode
+
+set showmatch
+set matchtime=3
+set hlsearch
+
+autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
+
+
+" save on focus lost
+au FocusLost * :wa
+
+autocmd BufRead *.json set filetype=json
+au BufNewFile,BufRead *.mustache set syntax=mustache
+
+cnoremap SudoWrite w !sudo tee > /dev/null %
+
+" create Backup/tmp/undo dirs
+set backupdir=~/.vim/backup
+set directory=~/.vim/tmp
+
+function! InitBackupDir()
+ let l:parent = $HOME . '/.vim/'
+ let l:backup = l:parent . 'backup/'
+ let l:tmpdir = l:parent . 'tmp/'
+ let l:undodir= l:parent . 'undo/'
+
+
+ if !isdirectory(l:parent)
+ call mkdir(l:parent)
+ endif
+ if !isdirectory(l:backup)
+ call mkdir(l:backup)
+ endif
+ if !isdirectory(l:tmpdir)
+ call mkdir(l:tmpdir)
+ endif
+ if !isdirectory(l:undodir)
+ call mkdir(l:undodir)
+ endif
+endfunction
+call InitBackupDir()
+
+augroup Binary
+ " edit binaries in xxd-output, xxd is part of vim
+ au!
+ au BufReadPre *.bin let &bin=1
+ au BufReadPost *.bin if &bin | %!xxd
+ au BufReadPost *.bin set ft=xxd | endif
+ au BufWritePre *.bin if &bin | %!xxd -r
+ au BufWritePre