Merge remote-tracking branch 'origin/develop'

This commit is contained in:
László Vaskó
2019-11-10 17:41:58 +01:00
5 changed files with 135 additions and 56 deletions

View File

@ -1,20 +1,16 @@
;;; -*- lexical-binding: t; -*-
(advice-add 'nix-straight-get-used-packages
:before (lambda (&rest r)
(message "Advising doom installer to gather packages to install...")
(advice-add 'doom-reload-autoloads
(message "[nix-doom-emacs] Advising doom installer to gather packages to install...")
(advice-add 'doom-cli-reload-autoloads
:override (lambda (&optional file force-p)
(message "Skipping generating autoloads...")))
(message "[nix-doom-emacs] Skipping generating autoloads...")))
(advice-add 'doom--format-print
:around (lambda (orig-print &rest r)
(let ((noninteractive nil))
(apply orig-print r))))))
(advice-add 'doom-call-process
:before (lambda (&rest r)
(message "> call-process %s" r)))
(advice-add 'doom-call-process
:after (lambda (&rest r)
(message "< call-process %s" r)))
(advice-add 'y-or-n-p
:override (lambda (q)
(message "%s \n[nix-doom-emacs] --> answering NO" q)
nil))

View File

@ -1,7 +1,27 @@
{ # The files would be going to ~/.config/doom (~/.doom.d)
doomPrivateDir
# Package set to install emacs and dependent packages from
/* Package set to install emacs and dependent packages from
Only used to get emacs package, if `bundledPackages` is set
*/
, emacsPackages
/* Use bundled revision of github.com/nix-community/emacs-overlay
as `emacsPackages`
*/
, bundledPackages ? true
/* Override dependency versions
Hadful for testing out updated dependencies without publishing
a new version of them.
Type: dependencyOverrides :: attrset -> either path derivation
Example:
dependencyOverrides = {
"emacs-overlay" = fetchFromGitHub { owner = /* ...*\/; };
};
*/
, dependencyOverrides ? { }
, lib
, pkgs
, stdenv
@ -14,6 +34,12 @@
, writeTextDir }:
let
lock = pkgs.callPackage
"${builtins.fetchTarball https://github.com/vlaci/nix-lock/archive/develop.tar.gz}/lock.nix" {
path = ./derivations.lock;
overrides = dependencyOverrides;
};
# Packages we need to get the default doom configuration run
overrides = self: super: {
evil-escape = super.evil-escape.overrideAttrs (esuper: {
@ -24,24 +50,14 @@ let
version = "1";
recipe = null;
ename = pname;
src = fetchFromGitHub {
owner = "TobiasZawada";
repo = "org-yt";
rev = "40cc1ac76d741055cbefa13860d9f070a7ade001";
sha256 = "0jsm3azb7lwikvc53z4p91av8qvda9s15wij153spkgjp83kld3p";
};
src = lock.get pname;
};
};
# Stage 1: prepare source for byte-compilation
doomSrc = stdenv.mkDerivation {
name = "doom-src";
src = fetchFromGitHub {
owner = "hlissner";
repo = "doom-emacs";
rev = "22ae9cca15f5aa9215cf0ec2c7b0b78d64deddc0";
sha256 = "0nya6qf2v0snd4zskxxradqdpiylpx3lxfrfi7xs04yb39ma99pn";
};
src = lock.get "doom-emacs";
phases = ["unpackPhase" "patchPhase" "installPhase"];
patches = [
(substituteAll {
@ -55,21 +71,24 @@ let
'';
};
# Bundled version of `emacs-overlay`
emacs-overlay = import (lock.get "emacs-overlay") pkgs pkgs;
# Stage 2:: install dependencies and byte-compile prepared source
doomLocal =
let
straight-env = pkgs.callPackage (fetchFromGitHub {
owner = "vlaci";
repo = "nix-straight.el";
rev = "v1.0";
sha256 = "038dss49bfvpj15psh5pr9jyavivninl0rzga9cn8qyc4g2cj5i0";
}) {
emacsPackages = emacsPackages.overrideScope' overrides;
straight-env = pkgs.callPackage (lock.get "nix-straight.el") {
emacsPackages =
if bundledPackages then
let
epkgs = emacs-overlay.emacsPackagesFor emacsPackages.emacs;
in epkgs.overrideScope' overrides
else
emacsPackages.overrideScope' overrides;
emacsLoadFiles = [ ./advice.el ];
emacsArgs = [
"--"
"install"
"--no-fonts"
"--no-env"
];
# Need to reference a store path here, as byte-compilation will bake-in

20
derivations.json Normal file
View File

@ -0,0 +1,20 @@
{
"doom-emacs": {
"repo": "doom-emacs",
"owner": "hlissner",
"rev": "develop"
},
"nix-straight.el": {
"owner": "vlaci",
"repo": "nix-straight.el",
"rev": "v1.0"
},
"org-yt": {
"owner": "TobiasZawada",
"repo": "org-yt"
},
"emacs-overlay": {
"owner": "nix-community",
"repo": "emacs-overlay"
}
}

54
derivations.lock Normal file
View File

@ -0,0 +1,54 @@
{
"doom-emacs": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "hlissner",
"repo": "doom-emacs",
"rev": "58e674d8fb85515e7980c87fc708dabb2b276128",
"sha256": "1algblcah2y5lbrn60fjslszx3jz1p9w7bh82c788ih1d8x7z253"
},
"meta": {
"updated": "2019-11-10T14:33:52+00:00",
"rev": "58e674d8fb85515e7980c87fc708dabb2b276128"
}
},
"nix-straight.el": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "vlaci",
"repo": "nix-straight.el",
"rev": "6182914aefea06ef514cd3f3f7f9f67db45940db",
"sha256": "038dss49bfvpj15psh5pr9jyavivninl0rzga9cn8qyc4g2cj5i0"
},
"meta": {
"updated": "2019-10-25T22:28:25+00:00",
"rev": "6182914aefea06ef514cd3f3f7f9f67db45940db"
}
},
"org-yt": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "TobiasZawada",
"repo": "org-yt",
"rev": "40cc1ac76d741055cbefa13860d9f070a7ade001",
"sha256": "0jsm3azb7lwikvc53z4p91av8qvda9s15wij153spkgjp83kld3p"
},
"meta": {
"updated": "2019-10-25T22:28:27+00:00",
"rev": "40cc1ac76d741055cbefa13860d9f070a7ade001"
}
},
"emacs-overlay": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "0bd32c063118ddc95d1a73ccd01b51a2d6dda24e",
"sha256": "1yc1az5l6073x1amk4g3rvfd98wsq3z3jvh2l7crp8q6wq9rndpa"
},
"meta": {
"updated": "2019-11-10T14:33:57+00:00",
"rev": "0bd32c063118ddc95d1a73ccd01b51a2d6dda24e"
}
}
}

View File

@ -1,25 +1,15 @@
diff --git a/bin/doom b/bin/doom
index bd381e5ab..37cc69569 100755
--- a/bin/doom
+++ b/bin/doom
@@ -6,7 +6,7 @@
":"; DOOMBASE=$(dirname "$0")/..
":"; [ "$1" = -d ] || [ "$1" = --debug ] && { shift; export DEBUG=1; }
":"; [ "$1" = doc ] || [ "$1" = doctor ] && { cd "$DOOMBASE"; shift; exec $EMACS --script bin/doom-doctor "$@"; exit 0; }
-":"; [ "$1" = run ] && { cd "$DOOMBASE"; shift; exec $EMACS -q --no-splash -l bin/doom "$@"; exit 0; }
+":"; [ "$1" = run ] && { cd "$DOOMBASE"; shift; exec $EMACS -q --no-splash -l bin/.doom-wrapped "$@"; exit 0; }
":"; exec $EMACS --script "$0" -- "$@"
":"; exit 0
diff --git a/core/core.el b/core/core.el
index 9cc1cfc25..fcbc3a3cf 100644
index cb12f8d08..03f370691 100644
--- a/core/core.el
+++ b/core/core.el
@@ -54,20 +54,20 @@ decrease this. If you experience stuttering, increase this.")
@@ -63,22 +63,21 @@ decrease this. If you experience stuttering, increase this.")
"The root directory for Doom's modules. Must end with a slash.")
(defvar doom-local-dir
(or (getenv "DOOMLOCALDIR")
(defconst doom-local-dir
- (if-let (localdir (getenv "DOOMLOCALDIR"))
- (expand-file-name (file-name-as-directory localdir))
- (concat doom-emacs-dir ".local/"))
+ (or (getenv "DOOMLOCALDIR")
+ "@local@/")
"Root directory for local storage.
@ -27,19 +17,19 @@ index 9cc1cfc25..fcbc3a3cf 100644
These files should not be shared across systems. By default, it is used by
`doom-etc-dir' and `doom-cache-dir'. Must end with a slash.")
-(defvar doom-etc-dir (concat doom-local-dir "etc/")
+(defvar doom-etc-dir "~/.local/doom"
-(defconst doom-etc-dir (concat doom-local-dir "etc/")
+(defconst doom-etc-dir "~/.local/doom"
"Directory for non-volatile local storage.
Use this for files that don't change much, like server binaries, external
dependencies or long-term shared data. Must end with a slash.")
-(defvar doom-cache-dir (concat doom-local-dir "cache/")
+(defvar doom-cache-dir "~/.cache/doom/"
-(defconst doom-cache-dir (concat doom-local-dir "cache/")
+(defconst doom-cache-dir "~/.cache/doom/"
"Directory for volatile local storage.
Use this for files that change often, like cache files. Must end with a slash.")
@@ -189,7 +189,7 @@ users).")
@@ -196,7 +195,7 @@ users).")
(setq abbrev-file-name (concat doom-local-dir "abbrev.el")
async-byte-compile-log-file (concat doom-etc-dir "async-bytecomp.log")
bookmark-default-file (concat doom-etc-dir "bookmarks")