Skip to content

Instantly share code, notes, and snippets.

@tilpner
Created October 31, 2017 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tilpner/6c30125069b62ea67622b820f6af2149 to your computer and use it in GitHub Desktop.
Save tilpner/6c30125069b62ea67622b820f6af2149 to your computer and use it in GitHub Desktop.
{ config, pkgs, lib, ... }:
let
inherit (pkgs) stdenv writeScript buildFHSUserEnv;
# Frankensteins chroot
pname = "fsc-run";
previousSystemPackages =
lib.filter
(p: !(lib.hasPrefix pname p.name))
config.environment.systemPackages;
extraPackages = let
tzdir = "${pkgs.tzdata}/share/zoneinfo";
etc-zoneinfo = pkgs.runCommand "zoneinfo" {} ''
mkdir -p $out/etc
ln -s ${tzdir} $out/etc/zoneinfo
ln -s ${tzdir}/UTC $out/etc/localtime
'';
in (with pkgs; [
alsaLib libpulseaudio mesa_glu zlib
openssl
pciutils
python2
which perl
xdg_utils
etc-zoneinfo
gst_all_1.gstreamer gst_all_1.gst-plugins-ugly
libdrm
xorg.xkeyboardconfig
]) ++ (with pkgs.xlibs; [
libX11
libXcomposite libXtst libXrandr xrandr
libXext libXfixes
libXinerama
libpciaccess
]);
fhsPackages = previousSystemPackages ++ extraPackages;
fscRun = buildFHSUserEnv rec {
name = pname;
targetPkgs = _: fhsPackages;
multiPkgs = _: fhsPackages;
runScript = writeScript pname ''
#!${stdenv.shell}
run="$1"
if [ "$run" = "" ]; then
echo "Usage: ${pname} command-to-run args..." >&2
exit 1
fi
shift
exec "$run" "$@"
'';
};
in {
environment.systemPackages = [ fscRun ];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment