add flake
This commit is contained in:
16
.devcontainer/devcontainer.json
Normal file
16
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "Alpine",
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.20",
|
||||||
|
"postCreateCommand": "sudo apk add nix nix-dev nix-doc nix-manual nix-bash-completion && sudo chown -R vscode:vscode /nix && mkdir -p ~/.config/nix && echo 'experimental-features = nix-command flakes\n sandbox = false' > ~/.config/nix/nix.conf",
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"bbenoist.Nix"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runArgs": [
|
||||||
|
"--userns=keep-id"
|
||||||
|
],
|
||||||
|
"containerUser": "vscode"
|
||||||
|
}
|
||||||
89
flake.nix
Normal file
89
flake.nix
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
description = "A flake for build root";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system}; in
|
||||||
|
{
|
||||||
|
packages = rec {
|
||||||
|
buildroot = pkgs.stdenv.mkDerivation rec {
|
||||||
|
name = "buildroot";
|
||||||
|
version = "2024.02.3";
|
||||||
|
src = pkgs.fetchzip {
|
||||||
|
url = "https://buildroot.org/downloads/buildroot-${version}.tar.gz";
|
||||||
|
sha256 = "sha256-iG/6UHy0tz0YAUlkY93yH9NbVLaggBSJDBInWCw8S18=";
|
||||||
|
};
|
||||||
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -R . $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
buildrootMakeCommand = pkgs.writeShellApplication {
|
||||||
|
name = "buildrootMakeCommand";
|
||||||
|
|
||||||
|
runtimeInputs = [
|
||||||
|
pkgs.gnumake
|
||||||
|
pkgs.which
|
||||||
|
pkgs.pkg-config
|
||||||
|
pkgs.ncurses.dev
|
||||||
|
pkgs.rsync
|
||||||
|
pkgs.bc
|
||||||
|
pkgs.unzip
|
||||||
|
pkgs.cpio
|
||||||
|
pkgs.wget
|
||||||
|
pkgs.git
|
||||||
|
pkgs.subversion
|
||||||
|
pkgs.gnused
|
||||||
|
pkgs.perl
|
||||||
|
pkgs.flock
|
||||||
|
pkgs.bash
|
||||||
|
pkgs.gnugrep
|
||||||
|
pkgs.coreutils-full
|
||||||
|
pkgs.binutils
|
||||||
|
pkgs.gcc
|
||||||
|
pkgs.gnupatch
|
||||||
|
pkgs.gzip
|
||||||
|
pkgs.bzip2
|
||||||
|
pkgs.gnutar
|
||||||
|
pkgs.cacert
|
||||||
|
pkgs.python3Full
|
||||||
|
pkgs.lzma
|
||||||
|
pkgs.gdbm
|
||||||
|
pkgs.readline
|
||||||
|
];
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
mkdir -p "$PWD/.buildroot"
|
||||||
|
BR2_DL_DIR="$PWD/.buildroot/dl" ${pkgs.gnumake}/bin/make O="$PWD/.buildroot" -C "${buildroot}" "$@"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
buildrootFHSEnv = (pkgs.buildFHSEnv {
|
||||||
|
name = "buildrootFHSEnv";
|
||||||
|
targetPkgs = pkgs: ([
|
||||||
|
pkgs.file
|
||||||
|
]);
|
||||||
|
runScript = "${buildrootMakeCommand}/bin/buildrootMakeCommand";
|
||||||
|
});
|
||||||
|
default = buildrootFHSEnv;
|
||||||
|
};
|
||||||
|
apps = rec {
|
||||||
|
buildrootMakeCommand = flake-utils.lib.mkApp { drv = self.packages.${system}.buildrootMakeCommand; };
|
||||||
|
buildrootFHSEnv = flake-utils.lib.mkApp { drv = self.packages.${system}.buildrootFHSEnv; };
|
||||||
|
default = buildrootFHSEnv;
|
||||||
|
};
|
||||||
|
devShells = {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.nixpkgs-fmt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user