nix default.nix

default.nix
with import <nixpkgs> {};

clangStdenv.mkDerivation {
  name = "emojicode-0.6";
  src = fetchFromGitHub {
    owner   = "emojicode";
    repo    = "emojicode";
    sha256  = "0v5r481xhjc3kdk9a49yi9lqnd6gxq5iws4d65dcx43mw3wz38sj";
    rev     = "5d655df6b7f7ffa13c4addfc140ef83d695381ca";
  };
  buildInputs = [ cmake ninja llvm ];
}

nix default.nix

default.nix
with import <nixpkgs> {};

stdenv.mkDerivation {
  name = "emojicode-0.6";
  src = fetchFromGitHub {
    owner   = "emojicode";
    repo    = "emojicode";
    sha256  = "0v5r481xhjc3kdk9a49yi9lqnd6gxq5iws4d65dcx43mw3wz38sj";
    rev     = "5d655df6b7f7ffa13c4addfc140ef83d695381ca";
  };
  buildInputs = [ cmake ninja ];
  installPhase = ''
    pwd
    ls -ltrh
  '';
}

nix default.nix

default.nix
{ mkDerivation, base, stdenv, ... }@args:
mkDerivation {
  pname = "nix-assert-bug";
  version = "0.1.0.0";
  src = ./.;
  libraryHaskellDepends = [ args."assert" base ];
  license = stdenv.lib.licenses.bsd3;
}
release.nix
let pkgs = import <nixpkgs> { };
in  pkgs.haskellPackages.callPackage ./default.nix { "assert" = pkgs.haskellPackages."assert"; }

nix default.nix

default.nix
{ stdenv, fetchurl, unzip, interface, writeText, jre, zopfli }:

stdenv.mkDerivation {
  name = "static-assets";
  phases = [ "unpackPhase" "installPhase" ];
  buildInputs = [ jre unzip ];
  installPhase = ''
    mkdir -p $out/share
    cp ${./Allsight.svg} $out/Allsight.svg
    cp ${./swoosh.svg} $out/swoosh.svg
    cp dist/semantic.min.css $out
    cp -r dist/themes $out
    cp ${interface}/bin/interface.jsexe/* $out
    export JAVA_HOME=${jre}
    ls -lh ${interface}/
    ls -lh ${interface}/*.js
    java -jar ${./closure-compiler/closure-compiler.jar} ${interface}/*.js --compilation_level=ADVANCED_OPTIMIZATIONS > all.min.js
    zopfli -i1000 all.min.js
    ls -lh all.min.jz.gz 
  '';
  src = fetchurl {
    url = "https://github.com/Semantic-Org/Semantic-UI/archive/2.2.10.zip";
    sha256 = "1qysd8yqwqnlxnil1xygjq2mjj7r1jyrq28nqh1mlc4x0cgnhcil";
  };
}

nix default.nix

default.nix
{ stdenv, fetchurl, unzip, interface, writeText, jre }:
let allSight = writeText "Allsight.svg" (builtins.readFile ./Allsight.svg);
    swoosh = writeText "swoosh.svg" (builtins.readFile ./swoosh.svg);
in stdenv.mkDerivation {
  name = "static-assets";
  phases = [ "unpackPhase" "installPhase" ];
  buildInputs = [ jre unzip ];
  installPhase = ''
    mkdir -p $out
    cp ${allSight} $out/Allsight.svg
    cp ${swoosh} $out/swoosh.svg
    cp dist/semantic.min.css $out
    cp -r dist/themes $out
    cp ${interface}/bin/interface.jsexe/* $out
    export JAVA_HOME=${jre}
    cp ${./closure-compiler/closure-compiler.jar} $out/share/closure-compiler.jar
    exec ${jre}/bin/java -jar $out/share/closure-compiler.jar ${interface}/*.js --compilation_level=ADVANCED_OPTIMIZATIONS > all.min.js
    zopfli all.min.js
  '';
  src = fetchurl {
    url = "https://github.com/Semantic-Org/Semantic-UI/archive/2.2.10.zip";
    sha256 = "1qysd8yqwqnlxnil1xygjq2mjj7r1jyrq28nqh1mlc4x0cgnhcil";
  };
}

nix gopanda.nix

gopanda.nix
{ pkgs ? import <nixpkgs> {}
, cairo ? pkgs.cairo
, fetchurl ? pkgs.fetchurl
, glib ? pkgs.glib
, patchelf ? pkgs.patchelf
, stdenv ? pkgs.stdenv
, xorg ? pkgs.xorg
, nss
, nspr
, gnome3
, gnome2
, fontconfig
, freetype
, pango
, libXi
, libXcursor
, libXext
, libXfixes
, libXrender
, libXcomposite
, libXdamage
, libXtst
, libXrandr
, alsaLib
, expat
, dbus
, gdk_pixbuf
, libnotify
, gcc
}:
stdenv.mkDerivation rec {
    name = "GoPanda";
    version = "2";
    meta = {
        homepage = "http://pandanet-igs.com/communities/gopanda2";
    };

    src = fetchurl {
        url = "http://pandanet-igs.com/gopanda2/installer/stable/linux-64/gopanda2-linux-64.tar.gz";
        sha256 = "6d0a13e81a4646779331ff182acdbf9fe7982b2659f12a794a50897ea7368e1c";
    };

    phases = [ "unpackPhase" "installPhase" ];
    buildInputs = [
        cairo
        glib
        xorg.libX11
        nss
        nspr
        gnome3.gconf
        gnome2.gtk
        fontconfig
        freetype
        pango
        libXi
        libXcursor
        libXext
        libXfixes
        libXrender
        libXcomposite
        libXdamage
        libXtst
        libXrandr
	      alsaLib
        expat
        dbus
        gdk_pixbuf
        libnotify
        gcc.cc.lib
    ];

    libPath = stdenv.lib.makeLibraryPath buildInputs;

    installPhase = ''
        mkdir -p $out/share
        mkdir -p $out/bin
        cp -r locales $out/share
        cp GoPanda2 $out/bin/GoPanda2
        patchelf \
            --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
            --set-rpath ${libPath} \
            $out/bin/GoPanda2
    '';
}

nix gistfile1.nix

gistfile1.nix
{ ... }:

{
  boot.loader.grub.extraConfig = ''
    insmod setpci;
    setpci -s "00:17.0" 3e.b=8;
    setpci -s "02:00.0" 04.b=7;
  '';
}

nix mozilla.nix

mozilla.nix
{ config, pkgs, ... }:

# Custom packages
let
  mozillaPkgsDir = (import <nixpkgs>{config={};}).fetchFromGitHub {
    owner = "Infinisil";
    repo = "nixpkgs-mozilla";
    rev = "d13abfc71b2bbc6a6effda0b598c82b79c5e6512";
    sha256 = "0panppfq354qgdq1hf8dimdmmfz36s85nfn4c6ila75icrsd1mx8";
    fetchSubmodules = true;
  };

  rustOverlay = import "${mozillaPkgsDir}/rust-overlay.nix";
in
{
    nixpkgs.config.allowUnfree = true;
    nixpkgs.overlays = [ rustOverlay ];

    environment.systemPackages = [
      pkgs.firefox-nightly-bin
    ];
}

nix scyther.nix

scyther.nix
let
  pkgs = import <nixpkgs> {};
in
pkgs.pkgsi686Linux.stdenv.mkDerivation rec { 
  name = "scyther-${version}";
  version = "1.1.3";
  src = pkgs.fetchFromGitHub {
    owner = "cascremers";
    repo = "scyther";
    rev = "v${version}";
    sha256 = "0rb4ha5bnjxnwj4f3hciq7kyj96fhw14hqbwl5kr9cdw8q62mx0h";
  };

  preConfigure = ''
    set -x
    cd src
    ls
  '';
  dontUseCmakeBuildDir = true;
  cmakeFlags = [ "-DCMAKE_BUILD_TYPE:STRING=Release" ];

  buildInputs = with pkgs.pkgsi686Linux; [
    cmake
    flex
    bison
  ];
}

nix gitlab-runner.nix

gitlab-runner.nix
{ config, lib, pkgs, ... }:

with lib;

let
  cfg = config.services.gitlab-runner;
  configFile = pkgs.writeText "config.toml" cfg.configText;
in
{
  options.services.gitlab-runner = {
    enable = mkEnableOption "Gitlab Runner";

    configText = mkOption {
      description = "Verbatim config.toml to use";
    };

    workDir = mkOption {
      default = "/var/lib/gitlab-runner";
      type = types.path;
      description = "The working directory used";
    };

  };

  config = mkIf cfg.enable {
    systemd.services.gitlab-runner = {
      path = with pkgs; [ bash ];
      description = "Gitlab Runner";
      after = [ "network.target" "docker.service" ];
      requires = [ "docker.service" ];
      wantedBy = [ "multi-user.target" ];
      preStart = ''
        mkdir -pv ${cfg.workDir}
        chown gitlab-runner:gitlab-runner ${cfg.workDir}
      '';
      serviceConfig = {
        User = "gitlab-runner";
        PermissionsStartOnly = "true";
        ExecStart = ''${pkgs.gitlab-runner.bin}/bin/gitlab-runner run \
          --working-directory ${cfg.workDir} \
          --config ${configFile} \
          --service gitlab-runner \
        '';
      };
    };

    users.extraUsers.gitlab-runner = {
      group = "gitlab-runner";
      extraGroups = [ "docker" ];
      uid = config.ids.uids.gitlab-runner;
      home = cfg.workDir;
      createHome = true;
    };

    users.extraGroups.gitlab-runner.gid = config.ids.gids.gitlab-runner;
  };
}