steamtinkerlaunch: add steamcompattool output
This makes it possible to integrate this into our steam derivation's extraCompatPackages
This commit is contained in:
@@ -25,8 +25,20 @@ stdenvNoCC.mkDerivation {
|
||||
hash = "sha256-CGtSGAm+52t2zFsPJEsm76w+FEHhbOd9NYuerGa31tc=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "steamcompattool" ];
|
||||
|
||||
installFlags = [ "PREFIX=\${out}" ];
|
||||
|
||||
nativeBuildInputs = let
|
||||
# We need a `steam` command in order to install the compat tool
|
||||
fakeSteam = writeShellApplication {
|
||||
name = "steam";
|
||||
text = "exit 0";
|
||||
};
|
||||
in [
|
||||
fakeSteam
|
||||
];
|
||||
|
||||
postInstall =
|
||||
let
|
||||
# We (ab)use writeShellApplication to produce a header for a shell script
|
||||
@@ -52,11 +64,31 @@ stdenvNoCC.mkDerivation {
|
||||
text = "";
|
||||
bashOptions = [ ];
|
||||
};
|
||||
fakeYad = writeShellApplication {
|
||||
name = "yad";
|
||||
text = "echo ${yad.version} FAKE";
|
||||
};
|
||||
in
|
||||
''
|
||||
cp $out/bin/steamtinkerlaunch $TMPDIR/steamtinkerlaunch
|
||||
install ${lib.getExe header} -T $out/bin/steamtinkerlaunch
|
||||
tail -n +2 $TMPDIR/steamtinkerlaunch >> $out/bin/steamtinkerlaunch
|
||||
|
||||
# Create a fake steam dir, it checks this and reads a few values
|
||||
steamdir=$TMPDIR/.local/share/Steam/
|
||||
mkdir -p $steamdir/config/
|
||||
echo \"path\" \"$steamdir\" > $steamdir/config/config.vdf
|
||||
mkdir $TMPDIR/.steam/
|
||||
ln -s $steamdir $TMPDIR/.steam/steam
|
||||
|
||||
cp -a $out/bin/steamtinkerlaunch $TMPDIR/steamtinkerlaunch
|
||||
# yad cannot print its version without a graphical session https://github.com/v1cont/yad/issues/277
|
||||
substituteInPlace $TMPDIR/steamtinkerlaunch --replace ${yad} ${fakeYad}
|
||||
HOME=$TMPDIR $TMPDIR/steamtinkerlaunch compat add
|
||||
|
||||
cp -a $steamdir/compatibilitytools.d/SteamTinkerLaunch $steamcompattool
|
||||
# It creates this symlink but it points to $TMPDIR
|
||||
ln -sfn $out/bin/steamtinkerlaunch $steamcompattool/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
Reference in New Issue
Block a user