mirror of
https://github.com/oqyude/nixos.git
synced 2026-06-11 04:30:41 +03:00
123
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# WIP, Garbage
|
||||
{ inputs, ... }@flakeContext:
|
||||
{
|
||||
config,
|
||||
@@ -5,17 +6,66 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
base-packages = with pkgs; [
|
||||
python312
|
||||
python312Packages.pip
|
||||
python312Packages.virtualenv
|
||||
];
|
||||
# Файл requirements.txt с перечислением плагинов
|
||||
requirements = pkgs.writeText "beets-requirements.txt" ''
|
||||
beets[bandcamp,deezer,discogs,duplicates,edit,embedart,fetchart,info,lastgenre,lyrics,missing,rewrite,scrub,smartplaylist,spotify]
|
||||
beetcamp
|
||||
typing_extensions
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
fileSystems."/mnt/beets/music" = {
|
||||
device = "${inputs.zeroq.dirs.music-library}";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
|
||||
users = {
|
||||
groups = {
|
||||
beets = {};
|
||||
};
|
||||
users = {
|
||||
beets = {
|
||||
isSystemUser = true;
|
||||
#isNormalUser = true;
|
||||
description = "beets service";
|
||||
#initialPassword = "1234";
|
||||
extraGroups = [
|
||||
"beets"
|
||||
];
|
||||
group = "beets";
|
||||
homeMode = "0770";
|
||||
home = "/var/lib/beets";
|
||||
packages = base-packages;
|
||||
shell = pkgs.bashInteractive;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/beets 0770 beets beets -"
|
||||
"d /mnt/beets 0770 beets beets -"
|
||||
];
|
||||
|
||||
# Автоматическая установка плагинов при старте системы
|
||||
system.activationScripts.beets-venv = ''
|
||||
# Создаём virtualenv если не существует
|
||||
if [ ! -d "/var/lib/beets/venv" ]; then
|
||||
${pkgs.sudo}/bin/sudo -u beets ${pkgs.python312}/bin/python -m venv /var/lib/beets/venv
|
||||
fi
|
||||
|
||||
# Обновляем pip и устанавливаем зависимости
|
||||
${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install --upgrade pip wheel
|
||||
${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install -r ${requirements}
|
||||
'';
|
||||
|
||||
# Симлинк для удобного вызова beets из-под основного пользователя
|
||||
# environment.systemPackages = [
|
||||
# (pkgs.writeScriptBin "beets" ''
|
||||
# #!/bin/sh
|
||||
# exec sudo -u beets /var/lib/beets/venv/bin/beets "$@"
|
||||
# '')
|
||||
# ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user