mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-11-09 20:33:15 -06:00
Compare commits
5 commits
c052754f93
...
ef83435bed
Author | SHA1 | Date | |
---|---|---|---|
ef83435bed | |||
b8dc12e3ce | |||
65664246a5 | |||
df15bc9621 | |||
8c1f72b605 |
7 changed files with 96 additions and 53 deletions
48
flake.lock
48
flake.lock
|
@ -341,11 +341,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723143710,
|
"lastModified": 1723224800,
|
||||||
"narHash": "sha256-qbjodK+UgnQ2YdtKmuI1XEG84SZlid39rQo6Ap9NTqI=",
|
"narHash": "sha256-2b+cECwR+3FL/ikuZnXE94H8bXdlnYUbhmi1KNpD/tc=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "4b4971c06fb02df00a2bd20b6b47b5d0e7d799a7",
|
"rev": "8b37e81374928856d8fd859b95a62c8bf4211901",
|
||||||
"revCount": 5071,
|
"revCount": 5073,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland/"
|
"url": "https://github.com/hyprwm/Hyprland/"
|
||||||
|
@ -534,11 +534,11 @@
|
||||||
"lix": {
|
"lix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723158731,
|
"lastModified": 1723213513,
|
||||||
"narHash": "sha256-FIXisGWmQpPjPcEKy/Xa6YvnUYg9KysfLsFq0biMIug=",
|
"narHash": "sha256-XbtSx3sxE6rf/D31fBX9d28CuXnokkbHW6tzOEMVfxw=",
|
||||||
"rev": "3b902683e93ad21be3537ef77f3e5200fbbed900",
|
"rev": "346e340cbfe450df3709cf5d51e26ba247a2c1ad",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3b902683e93ad21be3537ef77f3e5200fbbed900.tar.gz"
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/346e340cbfe450df3709cf5d51e26ba247a2c1ad.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
@ -715,11 +715,11 @@
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723151834,
|
"lastModified": 1723206805,
|
||||||
"narHash": "sha256-KjUcXpdLx5QzkT0x3qctGm1AM9U8g8pSFy24fE2MFeM=",
|
"narHash": "sha256-C75q+dsWnjObUKukRsFj2VKNRtULvZw/XszfGu97PyY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs-wayland",
|
"repo": "nixpkgs-wayland",
|
||||||
"rev": "e28b410ad60004cca039fc6de2dd65f485779833",
|
"rev": "f9b6659b7a856ad5c470ce224a0d69696c6f8c73",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -762,11 +762,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723019560,
|
"lastModified": 1723151389,
|
||||||
"narHash": "sha256-O/kxmybNecC3Efr6ITOdtCzFv90/B2Iiedavj5aRWt0=",
|
"narHash": "sha256-9AVY0ReCmSGXHrlx78+1RrqcDgVSRhHUKDVV1LLBy28=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f5129fb42b9c262318130a97b47516946da3e7d7",
|
"rev": "13fe00cb6c75461901f072ae62b5805baef9f8b2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -816,11 +816,11 @@
|
||||||
"pixi-source": "pixi-source"
|
"pixi-source": "pixi-source"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723049033,
|
"lastModified": 1723219928,
|
||||||
"narHash": "sha256-JMVvLQX+oJ5Gfck419poXJCIKOxWsZGRC23ize6hT6Y=",
|
"narHash": "sha256-QtO96opBSkBNNOdyWhBVIu447rkUqOZAwrYoOy/Jczw=",
|
||||||
"owner": "daylinmorgan",
|
"owner": "daylinmorgan",
|
||||||
"repo": "pixi-flake",
|
"repo": "pixi-flake",
|
||||||
"rev": "7a3e2a90d0f35170c1a95cc194a3ba81acd5b63d",
|
"rev": "df14d187eb1cb453f0d6b83c9cdf8441017b9c20",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -832,16 +832,16 @@
|
||||||
"pixi-source": {
|
"pixi-source": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723023748,
|
"lastModified": 1723208538,
|
||||||
"narHash": "sha256-m1qlDxZBEDUMNV+gRX2bbEdvBRp4lJv7C2ZZlEUA5Dg=",
|
"narHash": "sha256-37zVmPKAWCw58xA5lUb+WVAW8rRwPF7DZVXUZ8bwP5E=",
|
||||||
"owner": "prefix-dev",
|
"owner": "prefix-dev",
|
||||||
"repo": "pixi",
|
"repo": "pixi",
|
||||||
"rev": "608a65d977b9d87bae71c747f77989ad01c76ada",
|
"rev": "55741aede8e87f176fd6d99eb26bfd3d026c2b7e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "prefix-dev",
|
"owner": "prefix-dev",
|
||||||
"ref": "v0.27.0",
|
"ref": "v0.27.1",
|
||||||
"repo": "pixi",
|
"repo": "pixi",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -1156,11 +1156,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723080195,
|
"lastModified": 1723166646,
|
||||||
"narHash": "sha256-0g2ljOHZZtEZZG9GKusKiNx1+VKm+MEKzCOL2KdkLRg=",
|
"narHash": "sha256-brh8KVKQOcwyc9v+nG/QixMuH+yra2+GLvzd3aKhkGo=",
|
||||||
"owner": "Cloudef",
|
"owner": "Cloudef",
|
||||||
"repo": "zig2nix",
|
"repo": "zig2nix",
|
||||||
"rev": "7320da37a4d45afb0aa94d22861a0fe07152c038",
|
"rev": "8d9b9e0134659665937b60ece972cc8108960e3c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
inputs,
|
inputs,
|
||||||
system,
|
system,
|
||||||
lib,
|
lib,
|
||||||
|
self,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (builtins) map;
|
inherit (lib) flakeFromSystem attrValues;
|
||||||
inherit (lib) flakeFromSystem;
|
|
||||||
|
|
||||||
flake = flakeFromSystem system;
|
flake = flakeFromSystem system;
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
|
@ -16,25 +16,23 @@ let
|
||||||
(flake.overlay "nixpkgs-wayland")
|
(flake.overlay "nixpkgs-wayland")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
myPackages = map [
|
|
||||||
"tsm"
|
|
||||||
"hyprman"
|
|
||||||
"zls"
|
|
||||||
] flake.pkg;
|
|
||||||
|
|
||||||
hyprPackages = with (flake.pkgs "hyprland"); [
|
hyprPackages = with (flake.pkgs "hyprland"); [
|
||||||
default
|
default
|
||||||
xdg-desktop-portal-hyprland
|
xdg-desktop-portal-hyprland
|
||||||
];
|
];
|
||||||
|
|
||||||
|
selfPackages = (attrValues self.packages.${pkgs.system});
|
||||||
in
|
in
|
||||||
|
# selfPackages = self.packages.${pkgs.system} |> attrValues;
|
||||||
{
|
{
|
||||||
makePackages =
|
makePackages =
|
||||||
pkgs.runCommandLocal "build-third-party"
|
pkgs.runCommandLocal "build-third-party"
|
||||||
{
|
{
|
||||||
src = ./.;
|
src = ./.;
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
|
# packages from overlays
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
pixi
|
|
||||||
swww
|
swww
|
||||||
nixVersions.stable
|
nixVersions.stable
|
||||||
])
|
])
|
||||||
|
@ -42,9 +40,8 @@ in
|
||||||
(flake.pkgs "roc").full
|
(flake.pkgs "roc").full
|
||||||
(flake.pkgs "zig2nix").zig.master.bin
|
(flake.pkgs "zig2nix").zig.master.bin
|
||||||
]
|
]
|
||||||
++ myPackages
|
++ hyprPackages
|
||||||
++ hyprPackages;
|
++ selfPackages;
|
||||||
|
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
mkdir "$out"
|
mkdir "$out"
|
||||||
|
|
|
@ -3,22 +3,40 @@ let
|
||||||
lib = nixpkgs.lib.extend (import ./extended.nix inputs);
|
lib = nixpkgs.lib.extend (import ./extended.nix inputs);
|
||||||
|
|
||||||
inherit (builtins) mapAttrs readDir listToAttrs;
|
inherit (builtins) mapAttrs readDir listToAttrs;
|
||||||
inherit (lib) genAttrs;
|
inherit (lib) genAttrs pkgFromSystem pkgsFromSystem;
|
||||||
|
|
||||||
inherit (import ./find-modules.nix { inherit lib; }) findModulesList;
|
inherit (import ./find-modules.nix { inherit lib; }) findModulesList;
|
||||||
inherit (import ./generators.nix { inherit lib self inputs; }) mkIso mkSystem;
|
inherit (import ./generators.nix { inherit lib self inputs; }) mkIso mkSystem;
|
||||||
#supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
|
#supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
|
||||||
supportedSystems = [ "x86_64-linux" ];
|
supportedSystems = [ "x86_64-linux" ];
|
||||||
forAllSystems = f: genAttrs supportedSystems (system: f (import nixpkgs { inherit system; }));
|
forAllSystems = f: genAttrs supportedSystems (system: f (import nixpkgs { inherit system; }));
|
||||||
|
inheritFlakePkgs =
|
||||||
|
pkgs: flakes:
|
||||||
|
listToAttrs (
|
||||||
|
map (name: {
|
||||||
|
inherit name;
|
||||||
|
value = pkgFromSystem pkgs.system name;
|
||||||
|
}) flakes
|
||||||
|
);
|
||||||
|
|
||||||
oizysFlake = {
|
oizysFlake = {
|
||||||
nixosModules = listToAttrs (findModulesList ../modules);
|
nixosModules = listToAttrs (findModulesList ../modules);
|
||||||
nixosConfigurations = mapAttrs (name: _: mkSystem name) (readDir ../hosts);
|
nixosConfigurations = mapAttrs (name: _: mkSystem name) (readDir ../hosts);
|
||||||
packages = forAllSystems (pkgs: rec {
|
packages = forAllSystems (
|
||||||
|
pkgs:
|
||||||
|
rec {
|
||||||
|
default = oizys-cli;
|
||||||
|
oizys-cli = pkgs.callPackage ../pkgs/oizys { };
|
||||||
iso = mkIso.config.system.build.isoImage;
|
iso = mkIso.config.system.build.isoImage;
|
||||||
oizys-go = pkgs.callPackage ../pkgs/oizys { };
|
roc = (pkgsFromSystem pkgs.system "roc").full;
|
||||||
default = oizys-go;
|
}
|
||||||
});
|
// (inheritFlakePkgs pkgs [
|
||||||
|
"pixi"
|
||||||
|
"f1multiviewer"
|
||||||
|
"tsm"
|
||||||
|
])
|
||||||
|
);
|
||||||
|
|
||||||
devShells = forAllSystems (pkgs: {
|
devShells = forAllSystems (pkgs: {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
@ -30,7 +48,7 @@ let
|
||||||
checks = forAllSystems (
|
checks = forAllSystems (
|
||||||
pkgs:
|
pkgs:
|
||||||
import ./checks.nix {
|
import ./checks.nix {
|
||||||
inherit inputs lib;
|
inherit inputs lib self;
|
||||||
system = pkgs.system;
|
system = pkgs.system;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,9 +9,5 @@ let
|
||||||
cfg = config.oizys.languages;
|
cfg = config.oizys.languages;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = mkIfIn "nushell" cfg {
|
config = mkIfIn "nushell" cfg { environment.systemPackages = with pkgs; [ nushell ]; };
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nushell
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ in
|
||||||
# nix.package = pkgs.nixVersions.latest;
|
# nix.package = pkgs.nixVersions.latest;
|
||||||
nix = {
|
nix = {
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes pipe-operator
|
||||||
use-xdg-base-directories = true
|
use-xdg-base-directories = true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -24,5 +24,7 @@ buildGoModule {
|
||||||
installShellCompletion --cmd oizys \
|
installShellCompletion --cmd oizys \
|
||||||
--zsh <(OIZYS_SKIP_CHECK=true $out/bin/oizys completion zsh)
|
--zsh <(OIZYS_SKIP_CHECK=true $out/bin/oizys completion zsh)
|
||||||
'';
|
'';
|
||||||
|
meta = {
|
||||||
|
description = "nix begat oizys";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,10 @@ func New() *Oizys {
|
||||||
o.flake = oizysDir
|
o.flake = oizysDir
|
||||||
}
|
}
|
||||||
o.githubSummary = os.Getenv("GITHUB_STEP_SUMMARY")
|
o.githubSummary = os.Getenv("GITHUB_STEP_SUMMARY")
|
||||||
o.inCI = o.githubSummary != ""
|
if o.githubSummary != "" {
|
||||||
|
o.inCI = true
|
||||||
|
log.Debug("running oizys in CI mode")
|
||||||
|
}
|
||||||
o.githubToken = os.Getenv("GITHUB_TOKEN")
|
o.githubToken = os.Getenv("GITHUB_TOKEN")
|
||||||
o.repo = git.NewRepo(o.flake)
|
o.repo = git.NewRepo(o.flake)
|
||||||
return o
|
return o
|
||||||
|
@ -244,6 +247,35 @@ func NixosRebuild(subcmd string, rest ...string) {
|
||||||
e.ExitWithCommand(cmd)
|
e.ExitWithCommand(cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func splitDrv(drv string) (string, string) {
|
||||||
|
s := strings.SplitN(drv, "-", 2)
|
||||||
|
ss := strings.Split(s[0], "/")
|
||||||
|
hash := ss[len(ss)-1]
|
||||||
|
drvName := strings.Replace(s[1], ".drv^*", "", 1)
|
||||||
|
return drvName, hash
|
||||||
|
}
|
||||||
|
|
||||||
|
func writeDervationsToStepSummary(drvs []string) {
|
||||||
|
tableRows := make([]string, len(drvs))
|
||||||
|
for i, drv := range drvs {
|
||||||
|
name, hash := splitDrv(drv)
|
||||||
|
tableRows[i] = fmt.Sprintf(
|
||||||
|
"| %s | %s |",
|
||||||
|
name, hash,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.writeToGithubStepSummary(
|
||||||
|
fmt.Sprintf(`# Building Derivations:
|
||||||
|
| derivation | hash |
|
||||||
|
|---|---|
|
||||||
|
%s
|
||||||
|
`,
|
||||||
|
strings.Join(tableRows, "\n"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
func NixBuild(minimal bool, rest ...string) {
|
func NixBuild(minimal bool, rest ...string) {
|
||||||
cmd := exec.Command("nix", "build")
|
cmd := exec.Command("nix", "build")
|
||||||
if o.resetCache {
|
if o.resetCache {
|
||||||
|
@ -257,9 +289,7 @@ func NixBuild(minimal bool, rest ...string) {
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
if o.inCI {
|
if o.inCI {
|
||||||
o.writeToGithubStepSummary("# Building Derivations:\n")
|
writeDervationsToStepSummary(drvs)
|
||||||
// TODO: write as a markdown table with hash + name (without .drv)
|
|
||||||
o.writeToGithubStepSummary(strings.Join(drvs, "\n"))
|
|
||||||
}
|
}
|
||||||
cmd.Args = append(cmd.Args, append(drvs, "--no-link")...)
|
cmd.Args = append(cmd.Args, append(drvs, "--no-link")...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue