52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
|
|
{ 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
|
||
|
|
{ }
|