Merge branch 'main' into b12f
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
commit
260eb077d0
|
@ -1,11 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Setup ssh inside container
|
|
||||||
mkdir -p ~/.ssh
|
|
||||||
echo "$GITEA_SSH_KEY" > ~/.ssh/id_rsa
|
|
||||||
echo "[git.b12f.io]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ4uaREL7acSSCNAX+voDYl1Kj7JipP62fR5x1UyGP9u" >> ~/.ssh/known_hosts
|
|
||||||
echo "Host git.b12f.io" >> ~/.ssh/config
|
|
||||||
echo " Port 2222" >> ~/.ssh/config
|
|
||||||
chmod -R 600 ~/.ssh
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -u
|
|
||||||
|
|
||||||
LOCAL="$DRONE_BRANCH"
|
|
||||||
[ "$LOCAL" = "main" ] && UPSTREAM=origin/devos || UPSTREAM=origin/main
|
|
||||||
|
|
||||||
git fetch --all
|
|
||||||
git checkout "$LOCAL"
|
|
||||||
git merge "$UPSTREAM"
|
|
||||||
git push origin "$LOCAL"
|
|
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,38 +0,0 @@
|
||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help improve
|
|
||||||
title: ''
|
|
||||||
labels: 'bug'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Your issue may already be reported!
|
|
||||||
Please search on the [issue tracker](../) before creating one.
|
|
||||||
|
|
||||||
## Expected Behavior
|
|
||||||
<!--- What should happen? -->
|
|
||||||
<!--- How it should work? -->
|
|
||||||
|
|
||||||
## Current Behavior
|
|
||||||
<!--- What happens instead of the expected behavior? -->
|
|
||||||
|
|
||||||
## Possible Solution
|
|
||||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
|
||||||
<!--- or ideas how to implement the addition or change -->
|
|
||||||
|
|
||||||
## Steps to Reproduce
|
|
||||||
<!--- An unambiguous set of steps to reproduce this bug. -->
|
|
||||||
<!--- Linked fork or gist if needed. -->
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
3.
|
|
||||||
4.
|
|
||||||
|
|
||||||
## Context
|
|
||||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
|
||||||
<!--- Providing context helps us come up with a solution that is most useful in the real world. -->
|
|
||||||
|
|
||||||
## Your Environment
|
|
||||||
<!--- Include relevant details about the environment you experienced the bug in. -->
|
|
||||||
<!--- If you have run `bud update`, for example, post the flake.lock file. -->
|
|
22
.github/ISSUE_TEMPLATE/community_request.md
vendored
22
.github/ISSUE_TEMPLATE/community_request.md
vendored
|
@ -1,22 +0,0 @@
|
||||||
---
|
|
||||||
name: Commuity Request
|
|
||||||
about: inspire contribution to the `community` branch
|
|
||||||
title: ''
|
|
||||||
labels: 'community'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Your issue may already be reported!
|
|
||||||
Please search on the [issue tracker](../) before creating one.
|
|
||||||
|
|
||||||
## Ideas
|
|
||||||
<!--- The `community` branch is meant to provide various preconfigured system options, -->
|
|
||||||
<!--- useful to all kinds of users. -->
|
|
||||||
|
|
||||||
<!--- The point is to engage the community for what it thinks are -->
|
|
||||||
<!--- sane defaults for various tools. -->
|
|
||||||
|
|
||||||
## Requests
|
|
||||||
<!--- Have a tool that you'd like to see a system profile for? -->
|
|
||||||
<!--- Feel free to request it here. -->
|
|
24
.github/ISSUE_TEMPLATE/feature_request.md
vendored
24
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea
|
|
||||||
title: ''
|
|
||||||
labels: 'enhancement'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Your issue may already be reported!
|
|
||||||
Please search on the [issue tracker](../) before creating one.
|
|
||||||
|
|
||||||
## Would your feature fix an existing issue?
|
|
||||||
<!--- If your idea is related to, or resolves other issues, please mention. -->
|
|
||||||
|
|
||||||
## Describe the solution you'd like
|
|
||||||
<!--- What you want to happen. -->
|
|
||||||
|
|
||||||
## Describe alternatives you've considered
|
|
||||||
<!--- Any alternative solutions or features you've considered? -->
|
|
||||||
|
|
||||||
## Additional context
|
|
||||||
<!--- Is this feature only useful for a particular usecase? -->
|
|
||||||
<!--- Please elaborate. -->
|
|
16
.github/ISSUE_TEMPLATE/upstream_notice.md
vendored
16
.github/ISSUE_TEMPLATE/upstream_notice.md
vendored
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
name: Upstream notice (Issues or Changes)
|
|
||||||
about: Create an upstream notice to help our research
|
|
||||||
title: '[ <put the upstream project> ]: <topic>'
|
|
||||||
labels: 'upstream'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Link
|
|
||||||
<!-- just place a link to the upstream issue, or PR -->
|
|
||||||
|
|
||||||
|
|
||||||
## Context
|
|
||||||
<!-- We want to make this as cheap for you as possible.
|
|
||||||
Context is not required but helpful -->
|
|
29
.github/workflows/check.yml
vendored
29
.github/workflows/check.yml
vendored
|
@ -1,29 +0,0 @@
|
||||||
name: "Check & Cachix"
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- trying
|
|
||||||
- staging
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2.3.4
|
|
||||||
- uses: cachix/install-nix-action@v13
|
|
||||||
with:
|
|
||||||
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210415_76980a1/install
|
|
||||||
extra_nix_config: |
|
|
||||||
experimental-features = nix-command flakes
|
|
||||||
system-features = nixos-test benchmark big-parallel kvm recursive-nix
|
|
||||||
substituters = https://nrdxp.cachix.org https://nix-community.cachix.org https://cache.nixos.org
|
|
||||||
trusted-public-keys = nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
|
|
||||||
- uses: cachix/cachix-action@v10
|
|
||||||
with:
|
|
||||||
name: nrdxp
|
|
||||||
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
||||||
- run: nix -Lv flake check
|
|
||||||
- run: nix -Lv build ".#nixosConfigurations.NixOS.config.system.build.toplevel"
|
|
||||||
- run: nix -Lv develop -c echo OK
|
|
||||||
- run: nix -Lv develop --command bud --help
|
|
27
.github/workflows/mdbook_docs.yml
vendored
27
.github/workflows/mdbook_docs.yml
vendored
|
@ -1,27 +0,0 @@
|
||||||
name: Deploy Docs to GitHub Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-18.04
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Setup mdBook
|
|
||||||
uses: peaceiris/actions-mdbook@v1
|
|
||||||
with:
|
|
||||||
mdbook-version: 'latest'
|
|
||||||
|
|
||||||
- run: mdbook build doc
|
|
||||||
|
|
||||||
- name: Deploy
|
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
|
||||||
with:
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
publish_branch: gh-pages
|
|
||||||
publish_dir: ./doc/book
|
|
||||||
cname: devos.divnix.com
|
|
71
.github/workflows/release.yml
vendored
71
.github/workflows/release.yml
vendored
|
@ -1,71 +0,0 @@
|
||||||
name: Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- v*
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
changelog:
|
|
||||||
name: Update Changelog
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Get version from tag
|
|
||||||
env:
|
|
||||||
GITHUB_REF: ${{ github.ref }}
|
|
||||||
run: |
|
|
||||||
export CURRENT_VERSION=${GITHUB_TAG/refs\/tags\/v/}
|
|
||||||
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
- name: Update Changelog
|
|
||||||
uses: heinrichreimer/github-changelog-generator-action@v2.1.1
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
issues: false
|
|
||||||
issuesWoLabels: false
|
|
||||||
pullRequests: true
|
|
||||||
prWoLabels: true
|
|
||||||
addSections: '{"documentation":{"prefix":"**Documentation:**","labels":["documentation"]}}'
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
|
||||||
with:
|
|
||||||
commit_message: Update Changelog for tag ${{ env.CURRENT_VERSION }}
|
|
||||||
file_pattern: CHANGELOG.md
|
|
||||||
|
|
||||||
release_notes:
|
|
||||||
name: Create Release Notes
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: changelog
|
|
||||||
steps:
|
|
||||||
- name: Get version from tag
|
|
||||||
env:
|
|
||||||
GITHUB_REF: ${{ github.ref }}
|
|
||||||
run: |
|
|
||||||
export CURRENT_VERSION=${GITHUB_TAG/refs\/tags\/v/}
|
|
||||||
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
|
|
||||||
- name: Get Changelog Entry
|
|
||||||
id: changelog_reader
|
|
||||||
uses: mindsers/changelog-reader-action@v1
|
|
||||||
with:
|
|
||||||
version: ${{ env.CURRENT_VERSION }}
|
|
||||||
path: ./CHANGELOG.md
|
|
||||||
|
|
||||||
- name: Create Release
|
|
||||||
id: create_release
|
|
||||||
uses: actions/create-release@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
tag_name: ${{ github.ref }}
|
|
||||||
release_name: Release ${{ github.ref }}
|
|
||||||
body: ${{ steps.changelog_reader.outputs.log_entry }}
|
|
||||||
draft: false
|
|
||||||
prerelease: false
|
|
|
@ -5,7 +5,6 @@ let
|
||||||
|
|
||||||
ciSystems = [
|
ciSystems = [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
"i686-linux"
|
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -59,5 +59,5 @@ list of strings
|
||||||
_*Default*_
|
_*Default*_
|
||||||
|
|
||||||
```
|
```
|
||||||
["aarch64-linux","aarch64-darwin","i686-linux","x86_64-darwin","x86_64-linux"]
|
["aarch64-linux","aarch64-darwin","x86_64-darwin","x86_64-linux"]
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
[book]
|
[book]
|
||||||
authors = ["Timothy DeHerrera"]
|
authors = [
|
||||||
|
"Timothy DeHerrera",
|
||||||
|
"Parthiv Seetharaman",
|
||||||
|
"David Arnold",
|
||||||
|
]
|
||||||
language = "en"
|
language = "en"
|
||||||
multilingual = false
|
multilingual = false
|
||||||
src = "."
|
src = "."
|
||||||
|
|
|
@ -9,8 +9,7 @@
|
||||||
Users are a special case of [profiles](profiles.md) that define system
|
Users are a special case of [profiles](profiles.md) that define system
|
||||||
users and [home-manager][home-manager] configurations. For your convenience,
|
users and [home-manager][home-manager] configurations. For your convenience,
|
||||||
home manager is wired in by default so all you have to worry about is declaring
|
home manager is wired in by default so all you have to worry about is declaring
|
||||||
your users. For a fully fleshed out example, check out the developers personal
|
your users.
|
||||||
[branch](https://github.com/divnix/devos/tree/nrd/users/nrd/default.nix).
|
|
||||||
|
|
||||||
## Basic Usage
|
## Basic Usage
|
||||||
|
|
||||||
|
@ -60,18 +59,6 @@ using the `homeConfigurations` flake output.
|
||||||
This is great for keeping your environment consistent across Unix-like systems,
|
This is great for keeping your environment consistent across Unix-like systems,
|
||||||
including macOS.
|
including macOS.
|
||||||
|
|
||||||
### From within the projects devshell:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# builds the pub-solar user defined in the PubSolarOS host
|
|
||||||
nix build '.#homeConfigurations."pub-solar@PubSolarOS".activationPackage'
|
|
||||||
|
|
||||||
# build and activate
|
|
||||||
nix build '.#homeConfigurations."pub-solar@PubSolarOS".activationPackage' && ./result/activate && unlink result
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manually from outside the project:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# build
|
# build
|
||||||
nix build "github:divnix/devos#homeConfigurations.nixos@NixOS.home.activationPackage"
|
nix build "github:divnix/devos#homeConfigurations.nixos@NixOS.home.activationPackage"
|
||||||
|
@ -81,5 +68,5 @@ nix build "github:divnix/devos#homeConfigurations.nixos@NixOS.home.activationPac
|
||||||
```
|
```
|
||||||
|
|
||||||
[home-manager]: https://nix-community.github.io/home-manager
|
[home-manager]: https://nix-community.github.io/home-manager
|
||||||
[modules-list]: https://github.com/divnix/devos/tree/main/users/modules/module-list.nix
|
[modules-list]: https://github.com/divnix/digga/tree/main/users/modules/module-list.nix
|
||||||
[portableuser]: https://digga.divnix.com/api-reference-home.html#homeusers
|
[portableuser]: https://digga.divnix.com/api-reference-home.html#homeusers
|
||||||
|
|
|
@ -4,7 +4,8 @@ The only dependency is nix, so make sure you have it [installed][install-nix].
|
||||||
|
|
||||||
## Get the Template
|
## Get the Template
|
||||||
|
|
||||||
If you currently don't have flakes setup, you can utilize the digga shell to pull the template:
|
If you currently don't have flakes setup, you can utilize the digga shell to
|
||||||
|
pull the template:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
nix-shell "https://github.com/divnix/digga/archive/main.tar.gz" \
|
nix-shell "https://github.com/divnix/digga/archive/main.tar.gz" \
|
||||||
|
@ -22,37 +23,26 @@ Then make sure to create the git repository:
|
||||||
```sh
|
```sh
|
||||||
git init
|
git init
|
||||||
git add .
|
git add .
|
||||||
git commit -m init
|
git commit
|
||||||
```
|
```
|
||||||
|
|
||||||
To drop into a nix-shell, if you don't have flakes setup, use the digga shell to create a `flake.lock`:
|
Finally, run `nix-shell` to get to an interactive shell with all the
|
||||||
|
dependencies, including the unstable nix version required. You can run `menu` to
|
||||||
```sh
|
confirm that you are using digga (expected output includes [docs], [general
|
||||||
nix-shell "https://github.com/divnix/digga/archive/main.tar.gz" \
|
commands], [linter], etc.).
|
||||||
--run "nix flake lock"
|
|
||||||
```
|
|
||||||
|
|
||||||
Or if you do have flakes support, just run:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix flake lock
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, run `nix-shell` to get to an interactive shell with all the dependencies, including the unstable nix
|
|
||||||
version required. You can run `menu` to confirm that you are using digga (expected output includes [docs], [general commands], [linter], etc.).
|
|
||||||
|
|
||||||
In addition, the [binary cache](../integrations/cachix.md) is added for faster deployment.
|
In addition, the [binary cache](../integrations/cachix.md) is added for faster deployment.
|
||||||
|
|
||||||
> ##### _Notes:_
|
> # _Notes:_
|
||||||
>
|
>
|
||||||
> - Flakes ignore files that have not been added to git, so be sure to stage new
|
> - Flakes ignore files that have not been added to git, so be sure to stage new
|
||||||
> files before building the system.
|
> files before building the system.
|
||||||
> - You can choose to simply clone the repo with git if you want to follow
|
> - You can choose to simply clone the repo with git if you want to follow
|
||||||
> upstream changes.
|
> upstream changes.
|
||||||
> - If the `nix-shell -p cachix --run "cachix use nrdxp"` line doesn't work
|
> - If the `nix-shell -p cachix --run "cachix use nrdxp"` line doesn't work you
|
||||||
> you can try with sudo: `sudo nix-shell -p cachix --run "cachix use nrdxp"`
|
> can try with sudo: `sudo nix-shell -p cachix --run "cachix use nrdxp"`
|
||||||
|
|
||||||
## Next Steps:
|
## Next Steps
|
||||||
|
|
||||||
- [Make installable ISO](./iso.md)
|
- [Make installable ISO](./iso.md)
|
||||||
|
|
||||||
|
|
15
doc/tests.md
15
doc/tests.md
|
@ -14,12 +14,21 @@ be built during CI.
|
||||||
|
|
||||||
## Integration Tests
|
## Integration Tests
|
||||||
|
|
||||||
All your profiles defined in suites will be tested in a NixOS VM.
|
All your profiles defined in suites can be tested against an individual host.
|
||||||
|
Simply use digga's pre-baked `digga.lib.allProfilesTest` like so:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
hosts = {
|
||||||
|
Morty.tests = [ allProfilesTest ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
You can write integration tests for one or more NixOS VMs that can,
|
You can write integration tests for one or more NixOS VMs that can,
|
||||||
optionally, be networked together, and yes, it's as awesome as it sounds!
|
optionally, be networked together, and yes, it's as awesome as it sounds!
|
||||||
|
|
||||||
Be sure to use the `mkTest` function from digga, `digga.lib.pkgs-lib.mkTest`
|
Be sure to use the `mkTest` function from Digga, `digga.lib.mkTest`
|
||||||
which wraps the official [testing-python][testing-python] function to ensure
|
which wraps the official [testing-python][testing-python] function to ensure
|
||||||
that the system is setup exactly as it is for a bare DevOS system. There are
|
that the system is setup exactly as it is for a bare DevOS system. There are
|
||||||
already great resources for learning how to use these tests effectively,
|
already great resources for learning how to use these tests effectively,
|
||||||
|
@ -28,7 +37,7 @@ and the examples in [nixpkgs][nixos-tests].
|
||||||
|
|
||||||
[test-doc]: https://nixos.org/manual/nixos/stable/index.html#sec-nixos-tests
|
[test-doc]: https://nixos.org/manual/nixos/stable/index.html#sec-nixos-tests
|
||||||
[test-blog]: https://www.haskellforall.com/2020/11/how-to-use-nixos-for-lightweight.html
|
[test-blog]: https://www.haskellforall.com/2020/11/how-to-use-nixos-for-lightweight.html
|
||||||
[default]: https://github.com/divnix/devos/tree/main/tests/default.nix
|
[default]: https://github.com/divnix/devos/tree/core/tests/default.nix
|
||||||
[run-test]: https://github.com/NixOS/nixpkgs/blob/6571462647d7316aff8b8597ecdf5922547bf365/lib/debug.nix#L154-L166
|
[run-test]: https://github.com/NixOS/nixpkgs/blob/6571462647d7316aff8b8597ecdf5922547bf365/lib/debug.nix#L154-L166
|
||||||
[nixos-tests]: https://github.com/NixOS/nixpkgs/tree/master/nixos/tests
|
[nixos-tests]: https://github.com/NixOS/nixpkgs/tree/master/nixos/tests
|
||||||
[testing-python]: https://github.com/NixOS/nixpkgs/tree/master/nixos/lib/testing-python.nix
|
[testing-python]: https://github.com/NixOS/nixpkgs/tree/master/nixos/lib/testing-python.nix
|
||||||
|
|
13
flake.lock
13
flake.lock
|
@ -5,17 +5,16 @@
|
||||||
"darwin": [
|
"darwin": [
|
||||||
"darwin"
|
"darwin"
|
||||||
],
|
],
|
||||||
"home-manager": "home-manager",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixos"
|
"nixos"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1684153753,
|
"lastModified": 1682101079,
|
||||||
"narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=",
|
"narHash": "sha256-MdAhtjrLKnk2uiqun1FWABbKpLH090oeqCSiWemtuck=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "db5637d10f797bb251b94ef9040b237f4702cde3",
|
"rev": "2994d002dcff5353ca1ac48ec584c7f6589fe447",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -378,11 +377,11 @@
|
||||||
},
|
},
|
||||||
"master": {
|
"master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685633958,
|
"lastModified": 1685636800,
|
||||||
"narHash": "sha256-8GadlxTAf/Q+Fx3twHLt2i3C5IBoOmmH9gX96/CoANU=",
|
"narHash": "sha256-IFJLwoO/E7AURXAmDqY09Oy3kisqElRuQeRo9mFhb0g=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7d9999f2c178882a4656283c12a7501243626bf7",
|
"rev": "ddb3455e152edb633e171d51a5c1f12ae8d22641",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
14
flake.nix
14
flake.nix
|
@ -2,8 +2,6 @@
|
||||||
description = "A highly structured configuration database.";
|
description = "A highly structured configuration database.";
|
||||||
|
|
||||||
nixConfig.extra-experimental-features = "nix-command flakes";
|
nixConfig.extra-experimental-features = "nix-command flakes";
|
||||||
nixConfig.extra-substituters = "https://nix-dram.cachix.org https://dram.cachix.org https://nrdxp.cachix.org https://nix-community.cachix.org";
|
|
||||||
nixConfig.extra-trusted-public-keys = "nix-dram.cachix.org-1:CKjZ0L1ZiqH3kzYAZRt8tg8vewAx5yj8Du/+iR8Efpg= dram.cachix.org-1:baoy1SXpwYdKbqdTbfKGTKauDDeDlHhUpC+QuuILEMY= nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=";
|
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Track channels with commits tested and built by hydra
|
# Track channels with commits tested and built by hydra
|
||||||
|
@ -106,9 +104,7 @@
|
||||||
|
|
||||||
imports = [(digga.lib.importHosts ./hosts)];
|
imports = [(digga.lib.importHosts ./hosts)];
|
||||||
hosts = {
|
hosts = {
|
||||||
/*
|
# Set host-specific properties here
|
||||||
set host specific properties here
|
|
||||||
*/
|
|
||||||
bootstrap = {
|
bootstrap = {
|
||||||
modules = [
|
modules = [
|
||||||
digga.nixosModules.bootstrapIso
|
digga.nixosModules.bootstrapIso
|
||||||
|
@ -116,10 +112,10 @@
|
||||||
};
|
};
|
||||||
PubSolarOS = {
|
PubSolarOS = {
|
||||||
tests = [
|
tests = [
|
||||||
(import ./tests/first-test.nix {
|
#(import ./tests/first-test.nix {
|
||||||
pkgs = nixos.legacyPackages.x86_64-linux;
|
# pkgs = nixos.legacyPackages.x86_64-linux;
|
||||||
lib = nixos.lib;
|
# lib = nixos.lib;
|
||||||
})
|
#})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,2 +1,10 @@
|
||||||
{lib}:
|
{lib}:
|
||||||
lib.makeExtensible (self: {})
|
lib.makeExtensible (self: let
|
||||||
|
callLibs = file: import file {lib = self;};
|
||||||
|
in rec {
|
||||||
|
## Define your own library functions here!
|
||||||
|
#id = x: x;
|
||||||
|
## Or in files, containing functions that take {lib}
|
||||||
|
#foo = callLibs ./foo.nix;
|
||||||
|
## In configs, they can be used under "lib.our"
|
||||||
|
})
|
||||||
|
|
|
@ -96,7 +96,13 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable bluetooth
|
# Enable bluetooth
|
||||||
hardware.bluetooth.enable = mkIf cfg.bluetooth.enable true;
|
hardware.bluetooth = mkIf cfg.bluetooth.enable {
|
||||||
|
enable = true;
|
||||||
|
# disable useless SIM Access Profile plugin
|
||||||
|
disabledPlugins = [
|
||||||
|
"sap"
|
||||||
|
];
|
||||||
|
};
|
||||||
services.blueman.enable = mkIf cfg.bluetooth.enable true;
|
services.blueman.enable = mkIf cfg.bluetooth.enable true;
|
||||||
|
|
||||||
# Enable audio server & client
|
# Enable audio server & client
|
||||||
|
|
|
@ -60,12 +60,12 @@ in {
|
||||||
|
|
||||||
# Caddy reverse proxy for local services like cups
|
# Caddy reverse proxy for local services like cups
|
||||||
services.caddy = {
|
services.caddy = {
|
||||||
enable = cfg.enableCaddy;
|
enable = lib.mkDefault cfg.enableCaddy;
|
||||||
globalConfig = ''
|
globalConfig = lib.mkDefault ''
|
||||||
default_bind 127.0.0.1
|
default_bind 127.0.0.1
|
||||||
auto_https off
|
auto_https off
|
||||||
'';
|
'';
|
||||||
extraConfig = concatStringsSep "\n" [
|
extraConfig = lib.mkDefault (concatStringsSep "\n" [
|
||||||
(lib.optionalString
|
(lib.optionalString
|
||||||
config.pub-solar.printing.enable
|
config.pub-solar.printing.enable
|
||||||
''
|
''
|
||||||
|
@ -92,7 +92,7 @@ in {
|
||||||
file_server
|
file_server
|
||||||
}
|
}
|
||||||
'')
|
'')
|
||||||
];
|
]);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,13 +15,14 @@
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
# Prevents impurities in builds
|
# Prevents impurities in builds
|
||||||
sandbox = true;
|
sandbox = true;
|
||||||
# give root and @wheel special privileges with nix
|
# Give root and @wheel special privileges with nix
|
||||||
trusted-users = ["root" "@wheel"];
|
trusted-users = ["root" "@wheel"];
|
||||||
# This is just a representation of the nix default
|
# Allow only group wheel to connect to the nix daemon
|
||||||
system-features = ["nixos-test" "benchmark" "big-parallel" "kvm"];
|
allowed-users = ["@wheel"];
|
||||||
};
|
};
|
||||||
# Generally useful nix option defaults
|
# Generally useful nix option defaults
|
||||||
extraOptions = ''
|
extraOptions = lib.mkForce ''
|
||||||
|
experimental-features = flakes nix-command
|
||||||
min-free = 536870912
|
min-free = 536870912
|
||||||
keep-outputs = true
|
keep-outputs = true
|
||||||
keep-derivations = true
|
keep-derivations = true
|
||||||
|
|
|
@ -23,7 +23,7 @@ let
|
||||||
|
|
||||||
export nix_user_config_file="/home/build/.local/share/nix/trusted-settings.json"
|
export nix_user_config_file="/home/build/.local/share/nix/trusted-settings.json"
|
||||||
mkdir -p $(dirname \\$nix_user_config_file)
|
mkdir -p $(dirname \\$nix_user_config_file)
|
||||||
echo '{"extra-experimental-features":{"nix-command flakes":true},"extra-substituters":{"https://nix-dram.cachix.org https://dram.cachix.org https://nrdxp.cachix.org https://nix-community.cachix.org":true},"extra-trusted-public-keys":{"nix-dram.cachix.org-1:CKjZ0L1ZiqH3kzYAZRt8tg8vewAx5yj8Du/+iR8Efpg= dram.cachix.org-1:baoy1SXpwYdKbqdTbfKGTKauDDeDlHhUpC+QuuILEMY= nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=":true}}' > \\$nix_user_config_file
|
echo '{"extra-experimental-features":{"nix-command flakes":true}}' > \\$nix_user_config_file
|
||||||
chown -R build /home/build/
|
chown -R build /home/build/
|
||||||
|
|
||||||
curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_amd64.tar.gz | tar xz
|
curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_amd64.tar.gz | tar xz
|
||||||
|
@ -102,5 +102,10 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# Fix container not stopping correctly and holding the system 120s upon
|
||||||
|
# shutdown / reboot
|
||||||
|
systemd.services.docker-drone-exec-runner.preStop = ''
|
||||||
|
docker stop drone-exec-runner
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
folder = ./.;
|
|
||||||
toImport = name: value: folder + ("/" + name);
|
|
||||||
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix";
|
|
||||||
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
|
|
||||||
in {
|
|
||||||
inherit imports;
|
|
||||||
nix.settings.substituters = ["https://cache.nixos.org/"];
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nrdxp.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -7,8 +7,6 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) fileContents;
|
inherit (lib) fileContents;
|
||||||
in {
|
in {
|
||||||
imports = [../cachix];
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
pub-solar.audio.mopidy.enable = true;
|
pub-solar.audio.mopidy.enable = true;
|
||||||
pub-solar.audio.bluetooth.enable = true;
|
pub-solar.audio.bluetooth.enable = true;
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) fileContents;
|
inherit (lib) fileContents;
|
||||||
in {
|
in {
|
||||||
imports = [../cachix];
|
|
||||||
config = {
|
config = {
|
||||||
pub-solar.graphical.wayland.software-renderer.enable = true;
|
pub-solar.graphical.wayland.software-renderer.enable = true;
|
||||||
pub-solar.sway.terminal = "foot";
|
pub-solar.sway.terminal = "foot";
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
inherit
|
inherit
|
||||||
(pkgs)
|
(pkgs)
|
||||||
agenix
|
agenix
|
||||||
|
alejandra
|
||||||
cachix
|
cachix
|
||||||
editorconfig-checker
|
editorconfig-checker
|
||||||
mdbook
|
|
||||||
nix
|
nix
|
||||||
alejandra
|
nodePackages
|
||||||
nvfetcher
|
nvfetcher
|
||||||
shellcheck
|
shellcheck
|
||||||
shfmt
|
shfmt
|
||||||
|
@ -25,21 +25,23 @@
|
||||||
prettier
|
prettier
|
||||||
;
|
;
|
||||||
|
|
||||||
hooks = import ./hooks;
|
|
||||||
|
|
||||||
pkgWithCategory = category: package: {inherit package category;};
|
pkgWithCategory = category: package: {inherit package category;};
|
||||||
devos = pkgWithCategory "devos";
|
devos = pkgWithCategory "devos";
|
||||||
linter = pkgWithCategory "linter";
|
formatter = pkgWithCategory "linter";
|
||||||
docs = pkgWithCategory "docs";
|
|
||||||
in {
|
in {
|
||||||
_file = toString ./.;
|
imports = ["${extraModulesPath}/git/hooks.nix" ./hooks];
|
||||||
|
|
||||||
imports = ["${extraModulesPath}/git/hooks.nix"];
|
|
||||||
git = {inherit hooks;};
|
|
||||||
|
|
||||||
# override for our own welcome
|
# override for our own welcome
|
||||||
devshell.name = pkgs.lib.mkForce "PubSolarOS";
|
devshell.name = pkgs.lib.mkForce "PubSolarOS";
|
||||||
|
|
||||||
|
packages = [
|
||||||
|
alejandra
|
||||||
|
editorconfig-checker
|
||||||
|
nodePackages.prettier
|
||||||
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
];
|
||||||
|
|
||||||
commands = with pkgs;
|
commands = with pkgs;
|
||||||
[
|
[
|
||||||
(devos nix)
|
(devos nix)
|
||||||
|
@ -50,14 +52,7 @@ in {
|
||||||
help = pkgs.nvfetcher.meta.description;
|
help = pkgs.nvfetcher.meta.description;
|
||||||
command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher}/bin/nvfetcher -c ./sources.toml $@";
|
command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher}/bin/nvfetcher -c ./sources.toml $@";
|
||||||
}
|
}
|
||||||
(linter alejandra)
|
(formatter treefmt)
|
||||||
(linter editorconfig-checker)
|
|
||||||
(linter nodePackages.prettier)
|
|
||||||
(linter shfmt)
|
|
||||||
(linter shellcheck)
|
|
||||||
(linter treefmt)
|
|
||||||
|
|
||||||
(docs mdbook)
|
|
||||||
]
|
]
|
||||||
++ lib.optionals (!pkgs.stdenv.buildPlatform.isi686) [
|
++ lib.optionals (!pkgs.stdenv.buildPlatform.isi686) [
|
||||||
(devos cachix)
|
(devos cachix)
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{
|
{
|
||||||
enable = true;
|
git.hooks = {
|
||||||
pre-commit.text = builtins.readFile ./pre-commit.sh;
|
enable = true;
|
||||||
|
pre-commit.text = builtins.readFile ./pre-commit.sh;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue