Helper for packaging/grabbing osx apps; use it for OBS, keycastr, vlc
This commit is contained in:
parent
b7b1f88956
commit
7f724256b9
2 changed files with 85 additions and 2 deletions
51
nix/system/worktop/makeApp.nix
Normal file
51
nix/system/worktop/makeApp.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ name
|
||||
, appname ? name
|
||||
, version
|
||||
, src
|
||||
, sourceRoot ? "."
|
||||
, # from nix
|
||||
pkgs
|
||||
, stdenv
|
||||
, unzip
|
||||
, ...
|
||||
}:
|
||||
if stdenv.isDarwin then
|
||||
pkgs.stdenv.mkDerivation
|
||||
{
|
||||
name = "${name}-${version}";
|
||||
version = "${version}";
|
||||
src = src;
|
||||
|
||||
sourceRoot = "${appname}.app";
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
unpackCmd = ''
|
||||
echo "File to unpack: $curSrc"
|
||||
if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
|
||||
mnt=$(mktemp -d -t ci-XXXXXXXXXX)
|
||||
|
||||
function finish {
|
||||
echo "Detaching $mnt"
|
||||
/usr/bin/hdiutil detach $mnt -force
|
||||
rm -rf $mnt
|
||||
}
|
||||
trap finish EXIT
|
||||
|
||||
echo "Attaching $mnt"
|
||||
/usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt
|
||||
|
||||
echo "What's in the mount dir"?
|
||||
ls -la $mnt/
|
||||
|
||||
echo "Copying contents"
|
||||
shopt -s extglob
|
||||
DEST="$PWD"
|
||||
(cd "$mnt"; cp -a !(Applications) "$DEST/")
|
||||
'';
|
||||
nativeBuildInputs = [ pkgs.unzip ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/Applications/${appname}.app
|
||||
cp -a ./. $out/Applications/${appname}.app/
|
||||
'';
|
||||
}
|
||||
else
|
||||
{ }
|
||||
Loading…
Add table
Add a link
Reference in a new issue