Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3352946
D3274.id12248.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
D3274.id12248.diff
View Options
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,6 @@
.eslintcache
.vscode
!.vscode/extensions.json
+
+# Nix
+result*
diff --git a/flake.lock b/flake.lock
new file mode 100644
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,43 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1641404362,
+ "narHash": "sha256-8j21rw0xwwuiz8uOybm6gbeQIfAga/cwovzr3z1xzOg=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "defafc9a220440180a34f923be9772d9c89a8197",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "utils": "utils"
+ }
+ },
+ "utils": {
+ "locked": {
+ "lastModified": 1638122382,
+ "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,36 @@
+{
+ description = "Comm flake";
+
+ inputs = {
+ utils.url = "github:numtide/flake-utils";
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ };
+
+ outputs = { self, nixpkgs, utils, ... }:
+ let
+ # Overlays allow for extending a package set, in this case, we are extending nixpkgs
+ # with our devShell
+ localOverlay = import ./nix/overlay.nix;
+ overlays = [
+ localOverlay
+ ];
+
+ # Since we build for many systems (e.g. m1 mac, x86_64-linux), we create
+ # a helper function to help facilitate instantiation of the related package set
+ pkgsForSystem = system: import nixpkgs {
+ inherit overlays system;
+ };
+
+ # utils.lib.eachSystem helps create a result set of expected flake outputs
+ # of the form <output>.<system>
+ # https://github.com/numtide/flake-utils#usage for more examples
+ in utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ] (system: rec {
+ legacyPackages = pkgsForSystem system;
+ inherit (legacyPackages) devShell;
+ }) // {
+ # these outputs will lack the system suffix (e.g. devShell.aarch64-darwin), thus should
+ # be system agnostic such as overlays or utility functions.
+ overlays = { inherit localOverlay; };
+ overlay = localOverlay;
+ };
+}
diff --git a/nix/dev-shell.nix b/nix/dev-shell.nix
new file mode 100644
--- /dev/null
+++ b/nix/dev-shell.nix
@@ -0,0 +1,33 @@
+{ mkShell
+, stdenv
+, lib
+, arcanist
+, darwin
+, nodejs-16_x
+, protobuf3_15
+, yarn
+}:
+
+mkShell {
+
+ # programs which are meant to be executed should go here
+ nativeBuildInputs = [
+ arcanist
+ nodejs-16_x
+ protobuf3_15
+ yarn
+ ];
+
+ # include any libraries buildInputs
+ buildInputs = [
+ protobuf3_15 # exposes both a library and a command, thus should appear in both inputs
+ ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+ CoreFoundation
+ Security
+ ]);
+
+ # shell commands to be ran upon entering shell
+ shellHook = ''
+ echo "Welcome to Comm dev environment! :)"
+ '';
+}
diff --git a/nix/overlay.nix b/nix/overlay.nix
new file mode 100644
--- /dev/null
+++ b/nix/overlay.nix
@@ -0,0 +1,15 @@
+# An overlay allows for a package set to be extended with new or modified packages
+
+# `final` refers to the package set with all overlays applied.
+# This allows for added or modified packages to be referenced with
+# all relevant changes
+final:
+
+# `prev` refers to the previous package set before this current overlay is applied.
+# This is cheaper for nix to evaluate, thus should be prefered over final when possible.
+prev:
+
+{
+ # add packages meant for just this repository
+ devShell = final.callPackage ./dev-shell.nix { };
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 24, 7:27 AM (20 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2574539
Default Alt Text
D3274.id12248.diff (4 KB)
Attached To
Mode
D3274: Add intial nix yarn dev env
Attached
Detach File
Event Timeline
Log In to Comment