Compare commits
21 commits
3ef71cc165
...
df99533433
| Author | SHA1 | Date | |
|---|---|---|---|
| df99533433 | |||
| bb193c12ac | |||
| 209a3f6c8d | |||
| 6123c7bc3b | |||
| 894b77c777 | |||
| d50c572952 | |||
| a289966a4a | |||
| 98c429d594 | |||
| 94d25e3b2a | |||
| ef4e5e3ccc | |||
| 6be0ace3b0 | |||
| 17e7892a6e | |||
| 92b26e9d54 | |||
| 25143be03d | |||
| fc7e011d41 | |||
| 9245acf8ef | |||
| c4319e9c2f | |||
| ac618e999b | |||
| 2b628fb0d6 | |||
| 5efcbcce1c | |||
| ecf25d0740 |
52 changed files with 208 additions and 3558 deletions
|
|
@ -1,5 +1,5 @@
|
|||
labels:
|
||||
type: exec
|
||||
backend: local
|
||||
|
||||
pipeline:
|
||||
- name: nix flake check
|
||||
|
|
|
|||
42
flake.lock
generated
42
flake.lock
generated
|
|
@ -11,11 +11,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1684153753,
|
||||
"narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=",
|
||||
"lastModified": 1690228878,
|
||||
"narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "db5637d10f797bb251b94ef9040b237f4702cde3",
|
||||
"rev": "d8c973fd228949736dedf61b7f8cc1ece3236792",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -70,11 +70,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687762428,
|
||||
"narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=",
|
||||
"lastModified": 1690933134,
|
||||
"narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "37dd7bb15791c86d55c5121740a1887ab55ee836",
|
||||
"rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -89,11 +89,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687709756,
|
||||
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -131,11 +131,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687969886,
|
||||
"narHash": "sha256-tC2qFLmuM0PFaw0tMHVcFmzsG/351q09qa1EpuL2n1U=",
|
||||
"lastModified": 1691039228,
|
||||
"narHash": "sha256-iPNZJ1LvfUf1Y456ewC0DXgf99TNssG8OLObOyqxO6M=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a7002d6bfca54742d5fc9b485a1879953b4585b9",
|
||||
"rev": "86dd48d70a2e2c17e84e747ba4faa92453e68d4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -147,11 +147,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1688049487,
|
||||
"narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=",
|
||||
"lastModified": 1691006197,
|
||||
"narHash": "sha256-DbtxVWPt+ZP5W0Usg7jAyTomIM//c3Jtfa59Ht7AV8s=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9",
|
||||
"rev": "66aedfd010204949cb225cf749be08cb13ce1813",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -163,11 +163,11 @@
|
|||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1688149889,
|
||||
"narHash": "sha256-lHAwpd4ij6GUtu1ww9M9P81HnV/1mdsQXwEAoLQPZso=",
|
||||
"lastModified": 1691139289,
|
||||
"narHash": "sha256-cZtqvYztpGwLtAsfrzY2VeTfFdW3HBwX7m1KV2Zy2nw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "4cd52203c52face9ee649200a0d666c51e012dfa",
|
||||
"rev": "cb20b89d5b355c53a18dd149e7104a67381c7c17",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -192,11 +192,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688137124,
|
||||
"narHash": "sha256-ramG4s/+A5+t/QG2MplTNPP/lmBWDtbW6ilpwb9sKVo=",
|
||||
"lastModified": 1691093055,
|
||||
"narHash": "sha256-sjNWYpDHc6vx+/M0WbBZKltR0Avh2S43UiDbmYtfHt0=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "522fd47af79b66cdd04b92618e65c7a11504650a",
|
||||
"rev": "ebb43bdacd1af8954d04869c77bc3b61fde515e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
27
home/bitwarden/default.nix
Normal file
27
home/bitwarden/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.my.home.bitwarden;
|
||||
in
|
||||
{
|
||||
options.my.home.bitwarden = with lib; {
|
||||
enable = my.mkDisableOption "bitwarden configuration";
|
||||
|
||||
pinentry = mkOption {
|
||||
type = types.str;
|
||||
default = "tty";
|
||||
example = "gtk2";
|
||||
description = "Which pinentry interface to use";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
email = lib.my.mkMailAddress "bruno" "belanyi.fr";
|
||||
inherit (cfg) pinentry;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
./aliases
|
||||
./atuin
|
||||
./bat
|
||||
./bitwarden
|
||||
./bluetooth
|
||||
./calibre
|
||||
./comma
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ let
|
|||
realName = lib.mkDefault "Bruno BELANYI";
|
||||
userName = lib.mkDefault (mkMailAddress address domain);
|
||||
passwordCommand =
|
||||
lib.mkDefault [ "${pkgs.ambroisie.bw-pass}/bin/bw-pass" "Mail" passName ];
|
||||
lib.mkDefault [ (lib.getExe pkgs.ambroisie.rbw-pass) "Mail" passName ];
|
||||
|
||||
address = mkMailAddress address domain;
|
||||
aliases = builtins.map (lib.flip mkMailAddress domain) aliases;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ in
|
|||
settings = {
|
||||
notify-cmd =
|
||||
let
|
||||
notify-send = "${pkgs.libnotify}/bin/notify-send";
|
||||
notify-send = lib.getExe pkgs.libnotify;
|
||||
in
|
||||
pkgs.writeScript "mail-notifier" ''
|
||||
SENDER="$1"
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ in
|
|||
|
||||
command = mkOption {
|
||||
type = types.str;
|
||||
default = "${pkgs.i3lock}/bin/i3lock -n -c 000000";
|
||||
example = "\${pkgs.i3lock}/bin/i3lock -n -i lock.png";
|
||||
default = "${lib.getExe pkgs.i3lock} -n -c 000000";
|
||||
example = "\${lib.getExe pkgs.i3lock} -n -i lock.png";
|
||||
description = "Locker command to run";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -27,13 +27,13 @@ let
|
|||
genMovementBindings = f: addVimKeyBindings (lib.my.genAttrs' movementKeys f);
|
||||
|
||||
# Used in multiple scripts to show messages through keybindings
|
||||
notify-send = "${pkgs.libnotify}/bin/notify-send";
|
||||
notify-send = lib.getExe pkgs.libnotify;
|
||||
|
||||
# Screen backlight management
|
||||
changeBacklight = "${pkgs.ambroisie.change-backlight}/bin/change-backlight";
|
||||
changeBacklight = lib.getExe pkgs.ambroisie.change-backlight;
|
||||
|
||||
# Audio and volume management
|
||||
changeAudio = "${pkgs.ambroisie.change-audio}/bin/change-audio";
|
||||
changeAudio = lib.getExe pkgs.ambroisie.change-audio;
|
||||
|
||||
# Lock management
|
||||
toggleXautolock =
|
||||
|
|
@ -61,8 +61,8 @@ in
|
|||
ambroisie.dragger # drag-and-drop from the CLI
|
||||
ambroisie.i3-get-window-criteria # little helper for i3 configuration
|
||||
arandr # Used by a mapping
|
||||
pamixer # Used by a mapping
|
||||
playerctl # Used by a mapping
|
||||
xdotool # Used by 'rofi-rbw', in a mapping
|
||||
];
|
||||
|
||||
xsession.windowManager.i3 = {
|
||||
|
|
@ -189,6 +189,7 @@ in
|
|||
"${modifier}+d" = "exec rofi -show drun -disable-history";
|
||||
"${modifier}+Shift+d" = "exec rofi -show run -disable-history";
|
||||
"${modifier}+p" = "exec --no-startup-id flameshot gui";
|
||||
"${modifier}+Ctrl+p" = "exec ${lib.getExe pkgs.rofi-rbw}";
|
||||
"${modifier}+Shift+p" = "exec rofi -show emoji";
|
||||
"${modifier}+b" =
|
||||
let
|
||||
|
|
|
|||
|
|
@ -55,6 +55,12 @@ in
|
|||
format = " $icon Protons{ $percentage|} ";
|
||||
disconnected_format = "";
|
||||
})
|
||||
(lib.optionalAttrs config.my.home.bluetooth.enable {
|
||||
block = "bluetooth";
|
||||
mac = "88:C9:E8:6B:B7:55";
|
||||
format = " $icon Quarks{ $percentage|} ";
|
||||
disconnected_format = "";
|
||||
})
|
||||
(lib.optionalAttrs config.my.home.bluetooth.enable {
|
||||
block = "bluetooth";
|
||||
mac = "F7:78:BA:76:52:F7";
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ let
|
|||
notficationCmd =
|
||||
let
|
||||
duration = toString (cfg.notify.delay * 1000);
|
||||
notifyCmd = "${pkgs.libnotify}/bin/notify-send -u critical -t ${duration}";
|
||||
notifyCmd = "${lib.getExe pkgs.libnotify} -u critical -t ${duration}";
|
||||
in
|
||||
# Needs to be surrounded by quotes for systemd to launch it correctly
|
||||
''"${notifyCmd} -- 'Locking in ${toString cfg.notify.delay} seconds'"'';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
my.home = {
|
||||
# Use graphical pinentry
|
||||
bitwarden.pinentry = "gtk2";
|
||||
# Ebook library
|
||||
calibre.enable = true;
|
||||
# Some amount of social life
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
loader.grub = {
|
||||
enable = true;
|
||||
# Define on which hard drive you want to install Grub.
|
||||
device = "/dev/sda";
|
||||
device = "/dev/disk/by-id/ata-HGST_HUS724020ALA640_PN2181P6J58M1P";
|
||||
};
|
||||
|
||||
initrd = {
|
||||
|
|
|
|||
|
|
@ -147,6 +147,14 @@ in
|
|||
enable = true;
|
||||
credentialsFile = secrets."transmission/credentials".path;
|
||||
};
|
||||
# Self-hosted todo app
|
||||
vikunja = {
|
||||
enable = true;
|
||||
mail = {
|
||||
enable = true;
|
||||
configFile = secrets."vikunja/mail".path;
|
||||
};
|
||||
};
|
||||
# Simple, in-kernel VPN
|
||||
wireguard = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
let
|
||||
cfg = config.my.services.drone;
|
||||
hasRunner = (name: builtins.elem name cfg.runners);
|
||||
dockerPkg = pkgs.drone-runner-docker;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf (cfg.enable && hasRunner "docker") {
|
||||
|
|
@ -25,7 +24,7 @@ in
|
|||
EnvironmentFile = [
|
||||
cfg.sharedSecretFile
|
||||
];
|
||||
ExecStart = "${dockerPkg}/bin/drone-runner-docker";
|
||||
ExecStart = lib.getExe pkgs.drone-runner-docker;
|
||||
User = "drone-runner-docker";
|
||||
Group = "drone-runner-docker";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
let
|
||||
cfg = config.my.services.drone;
|
||||
hasRunner = (name: builtins.elem name cfg.runners);
|
||||
execPkg = pkgs.drone-runner-exec;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf (cfg.enable && hasRunner "exec") {
|
||||
|
|
@ -53,7 +52,7 @@ in
|
|||
EnvironmentFile = [
|
||||
cfg.sharedSecretFile
|
||||
];
|
||||
ExecStart = "${execPkg}/bin/drone-runner-exec";
|
||||
ExecStart = lib.getExe pkgs.drone-runner-exec;
|
||||
User = "drone-runner-exec";
|
||||
Group = "drone-runner-exec";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ in
|
|||
rndtime = "5m"; # Use 5 minute jitter to avoid unban evasion
|
||||
};
|
||||
|
||||
jails.DEFAULT = '';
|
||||
findtime = 4h
|
||||
bantime = 10m
|
||||
'';
|
||||
jails.DEFAULT.settings = {
|
||||
findtime = "4h";
|
||||
bantime = "10m";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ in
|
|||
|
||||
serviceConfig = {
|
||||
ExecStart = lib.concatStringsSep " " [
|
||||
"${pkgs.flood}/bin/flood"
|
||||
(lib.getExe pkgs.flood)
|
||||
"--port ${builtins.toString cfg.port}"
|
||||
"--rundir /var/lib/${cfg.stateDir}"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ let
|
|||
cfg = config.my.services.lohr;
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
|
||||
lohrPkg = pkgs.ambroisie.lohr;
|
||||
|
||||
lohrStateDirectory = "lohr";
|
||||
lohrHome = "/var/lib/lohr/";
|
||||
in
|
||||
|
|
@ -80,7 +78,7 @@ in
|
|||
let
|
||||
configFile = settingsFormat.generate "lohr-config.yaml" cfg.setting;
|
||||
in
|
||||
"${lohrPkg}/bin/lohr --config ${configFile}";
|
||||
"${lib.getExe pkgs.ambroisie.lohr} --config ${configFile}";
|
||||
StateDirectory = lohrStateDirectory;
|
||||
WorkingDirectory = lohrHome;
|
||||
User = "lohr";
|
||||
|
|
|
|||
|
|
@ -59,8 +59,7 @@ in
|
|||
StateDirectory = "nginx-sso";
|
||||
WorkingDirectory = "/var/lib/nginx-sso";
|
||||
# The files to be merged might not have the correct permissions
|
||||
ExecStartPre = ''+${pkgs.writeScript "merge-nginx-sso-config" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
ExecStartPre = ''+${pkgs.writeShellScript "merge-nginx-sso-config" ''
|
||||
rm -f '${confPath}'
|
||||
${utils.genJqSecretsReplacementSnippet cfg.configuration confPath}
|
||||
|
||||
|
|
@ -70,7 +69,7 @@ in
|
|||
''
|
||||
}'';
|
||||
ExecStart = lib.mkForce ''
|
||||
${pkg}/bin/nginx-sso \
|
||||
${lib.getExe pkg} \
|
||||
--config ${confPath} \
|
||||
--frontend-dir ${pkg}/share/frontend
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.my.services.woodpecker;
|
||||
|
||||
|
|
@ -10,8 +10,6 @@ in
|
|||
agents.docker = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.ambroisie.woodpecker-agent;
|
||||
|
||||
environment = {
|
||||
WOODPECKER_SERVER = "localhost:${toString cfg.rpcPort}";
|
||||
WOODPECKER_MAX_WORKFLOWS = "10";
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ in
|
|||
agents.exec = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.ambroisie.woodpecker-agent;
|
||||
|
||||
environment = {
|
||||
WOODPECKER_SERVER = "localhost:${toString cfg.rpcPort}";
|
||||
WOODPECKER_MAX_WORKFLOWS = "10";
|
||||
|
|
@ -33,7 +31,7 @@ in
|
|||
restartIfChanged = false;
|
||||
|
||||
path = with pkgs; [
|
||||
ambroisie.woodpecker-plugin-git
|
||||
woodpecker-plugin-git
|
||||
bash
|
||||
coreutils
|
||||
git
|
||||
|
|
@ -54,7 +52,7 @@ in
|
|||
BindReadOnlyPaths = [
|
||||
"/etc/passwd:/etc/passwd"
|
||||
"/etc/group:/etc/group"
|
||||
"/nix/var/nix/profiles/system/etc/nix:/etc/nix"
|
||||
"/etc/nix:/etc/nix"
|
||||
"${config.environment.etc."ssh/ssh_known_hosts".source}:/etc/ssh/ssh_known_hosts"
|
||||
"/etc/machine-id"
|
||||
# channels are dynamic paths in the nix store, therefore we need to bind mount the whole thing
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.my.services.woodpecker;
|
||||
in
|
||||
|
|
@ -7,8 +7,6 @@ in
|
|||
services.woodpecker-server = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.ambroisie.woodpecker-server;
|
||||
|
||||
environment = {
|
||||
WOODPECKER_OPEN = "true";
|
||||
WOODPECKER_HOST = "https://woodpecker.${config.networking.domain}";
|
||||
|
|
|
|||
|
|
@ -36,7 +36,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "A simple script to query a password from bitwarden";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "bw-pass";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "change-audio";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "change-backlight";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,11 +30,11 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
mainProgram = ",";
|
||||
description = "A simple script inspired by Shopify's comma, for modern Nix";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = ",";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: {
|
|||
|
||||
osc52 = pkgs.callPackage ./osc52 { };
|
||||
|
||||
rbw-pass = pkgs.callPackage ./rbw-pass { };
|
||||
|
||||
unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { };
|
||||
|
||||
unified-hosts-lists = pkgs.callPackage ./unified-hosts-lists { };
|
||||
|
|
@ -35,14 +37,4 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: {
|
|||
volantes-cursors = pkgs.callPackage ./volantes-cursors { };
|
||||
|
||||
wifi-qr = pkgs.callPackage ./wifi-qr { };
|
||||
|
||||
woodpecker-agent = pkgs.callPackage ./woodpecker/agent.nix { };
|
||||
|
||||
woodpecker-cli = pkgs.callPackage ./woodpecker/cli.nix { };
|
||||
|
||||
woodpecker-frontend = pkgs.callPackage ./woodpecker/frontend.nix { };
|
||||
|
||||
woodpecker-plugin-git = pkgs.callPackage ./woodpecker-plugin-git { };
|
||||
|
||||
woodpecker-server = pkgs.callPackage ./woodpecker/server.nix { };
|
||||
})
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "Nix flake helper to visualize changes in closures";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "diff-flake";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ qt5.mkDerivation rec {
|
|||
description = "A CLI drag-and-drop tool";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/dragger";
|
||||
license = licenses.mit;
|
||||
mainProgram = "dragger";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "Helper script to run rsync in a CI pipeline";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "drone-rsync";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,5 +20,6 @@ buildGoModule rec {
|
|||
'';
|
||||
homepage = "https://github.com/appleboy/drone-scp";
|
||||
license = licenses.mit;
|
||||
mainProgram = "drone-scp";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ buildGoModule rec {
|
|||
vendorHash = null;
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's,"mpv","${mpv}/bin/mpv",' ff2mpv.go
|
||||
sed -i -e 's,"mpv","${lib.getExe mpv}",' ff2mpv.go
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
|
@ -26,5 +26,6 @@ buildGoModule rec {
|
|||
'';
|
||||
homepage = "https://git.clsr.net/util/ff2mpv-go/";
|
||||
license = licenses.publicDomain;
|
||||
mainProgram = "ff2mpv-go";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "Helper script to query i3 window criterions";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "i3-get-window-criteria";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ rustPlatform.buildRustPackage rec {
|
|||
description = "Git mirroring daemon";
|
||||
homepage = "https://github.com/alarsyo/lohr";
|
||||
license = with licenses; [ mit asl20 ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "lohr";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://git.belanyi.fr/ambroisie/${pname}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "matrix-notifier";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "osc52";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
41
pkgs/rbw-pass/default.nix
Normal file
41
pkgs/rbw-pass/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, coreutils, makeWrapper, rbw, rofi, stdenvNoCC }:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "rbw-pass";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./rbw-pass;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp $src $out/bin/${pname}
|
||||
chmod a+x $out/bin/${pname}
|
||||
'';
|
||||
|
||||
wrapperPath = lib.makeBinPath [
|
||||
rbw
|
||||
coreutils
|
||||
rofi
|
||||
];
|
||||
|
||||
fixupPhase = ''
|
||||
patchShebangs $out/bin/${pname}
|
||||
wrapProgram $out/bin/${pname} --prefix PATH : "${wrapperPath}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple script to query a password from rbw";
|
||||
homepage = "https://git.belanyi.fr/ambroisie/nix-config";
|
||||
license = with licenses; [ mit ];
|
||||
mainProgram = "rbw-pass";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
43
pkgs/rbw-pass/rbw-pass
Executable file
43
pkgs/rbw-pass/rbw-pass
Executable file
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
usage() {
|
||||
printf '%s\n' "Usage: bw-pass [directory name] <account name>" >&2
|
||||
}
|
||||
|
||||
error_out() {
|
||||
printf '%s\n' "$1" >&2
|
||||
rofi -dmenu -no-fixed-num-lines -p "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ensure_logged_in() {
|
||||
rbw login
|
||||
}
|
||||
|
||||
query_password() {
|
||||
# Either use with `query_password <directory> <account name>
|
||||
# Or `query_password <account name>` when the account has no directory
|
||||
|
||||
local FOLDER_ARGS=()
|
||||
local PASSWORD
|
||||
|
||||
# FIXME: no way to enforce filering by "no folder"
|
||||
if [ $# -eq 2 ]; then
|
||||
FOLDER_ARGS+=(--folder "$1")
|
||||
shift
|
||||
fi
|
||||
PASSWORD="$(rbw get "${FOLDER_ARGS[@]}" "$1")"
|
||||
|
||||
if [ -z "$PASSWORD" ]; then
|
||||
error_out "Did not find password for '$1'"
|
||||
fi
|
||||
printf '%s\n' "$PASSWORD"
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ensure_logged_in
|
||||
query_password "$@"
|
||||
|
|
@ -10,7 +10,7 @@ stdenvNoCC.mkDerivation {
|
|||
installPhase =
|
||||
let
|
||||
gawkCmd = lib.concatStringsSep " " [
|
||||
''${gawk}/bin/awk''
|
||||
(lib.getExe gawk)
|
||||
'''{sub(/\r$/,"")}''
|
||||
''{sub(/^127\.0\.0\.1/,"0.0.0.0")}''
|
||||
''BEGIN { OFS = "" }''
|
||||
|
|
@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation {
|
|||
'';
|
||||
homepage = "https://github.com/StevenBlack/hosts";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://github.com/StevenBlack/hosts";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "An X cursor theme inspired by Materia design";
|
||||
homepage = "https://github.com/vinceliuice/Vimix-cursors";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "Classic cursor with a flying style";
|
||||
homepage = "https://github.com/varlesh/volantes-cursors";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "WiFi password sharing via QR codes";
|
||||
homepage = "https://github.com/kokoye2007/wifi-qr";
|
||||
license = with licenses; [ gpl3Plus ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "wifi-qr";
|
||||
maintainers = with maintainers; [ ambroisie ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
|
||||
buildGoModule rec {
|
||||
pname = "woodpecker-plugin-git";
|
||||
version = "2.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "woodpecker-ci";
|
||||
repo = "plugin-git";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KU/A3V7KS8R1nAZoJJwkDc9C8y3t148kUzGnkeYtFjs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-63Ly/9yIJu2K/DwOfGs9pYU3fokbs2senZkl3MJ1UIY=";
|
||||
|
||||
patches = [
|
||||
# https://github.com/woodpecker-ci/plugin-git/pull/67
|
||||
(fetchpatch {
|
||||
name = "do-not-overwrite-command-env.patch";
|
||||
url = "https://github.com/woodpecker-ci/plugin-git/commit/970cc63a9b212872deac565c6292feb3f4cf4b51.patch";
|
||||
hash = "sha256-izu0X7j+OyNbrOkksf+7VF3KiKVylVv2o00xaX/b1Rg=";
|
||||
})
|
||||
];
|
||||
|
||||
CGO_ENABLED = "0";
|
||||
|
||||
# Checks fail because they require network access.
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Woodpecker plugin for cloning Git repositories.";
|
||||
homepage = "https://woodpecker-ci.org/";
|
||||
license = licenses.asl20;
|
||||
mainProgram = "pluging-git";
|
||||
maintainers = with maintainers; [ thehedgeh0g ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
{ buildGoModule, callPackage, fetchpatch }:
|
||||
let
|
||||
common = callPackage ./common.nix { };
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "woodpecker-agent";
|
||||
inherit (common) version src ldflags postInstall vendorHash;
|
||||
|
||||
patches = [
|
||||
# https://github.com/woodpecker-ci/woodpecker/pull/1686
|
||||
(fetchpatch {
|
||||
name = "fix-local-pipeline-home.patch";
|
||||
url = "https://github.com/woodpecker-ci/woodpecker/commit/d2c9b73ebf015bfa64062b9855c33e14484ccc3e.patch";
|
||||
hash = "sha256-1wYe4+oCWiV/6W4cIbdDT+mEL9ETQmcYQZhjJASvmUk=";
|
||||
})
|
||||
];
|
||||
|
||||
subPackages = "cmd/agent";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
meta = common.meta // {
|
||||
description = "Woodpecker Continuous Integration agent";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{ buildGoModule, callPackage }:
|
||||
let
|
||||
common = callPackage ./common.nix { };
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "woodpecker-cli";
|
||||
inherit (common) version src ldflags postInstall vendorHash;
|
||||
|
||||
subPackages = "cmd/cli";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
meta = common.meta // {
|
||||
description = "Command line client for the Woodpecker Continuous Integration server";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{ lib, fetchFromGitHub }:
|
||||
let
|
||||
rev = "e7ca28026bc4576b2dd30aa2ab71c2d07dfc7197";
|
||||
srcHash = "sha256-vtttb+tRi3uDFn8liFgZcAqWLENfpTY7lWsNCoTFzEM=";
|
||||
vendorHash = "sha256-u7HT8+LeqS7mCNbUhrvSW0xd/uduL2Kw7A0mUUpW2w4=";
|
||||
yarnHash = "sha256-h+he2VxvZlStIoLb1PPxqKSmTfFNGgJmUXptjtc5xD8=";
|
||||
version = "next-${lib.substring 0 8 rev}";
|
||||
in
|
||||
{
|
||||
inherit version yarnHash vendorHash;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "woodpecker-ci";
|
||||
repo = "woodpecker";
|
||||
inherit rev;
|
||||
hash = srcHash;
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
cd $out/bin
|
||||
for f in *; do
|
||||
mv -- "$f" "woodpecker-$f"
|
||||
done
|
||||
cd -
|
||||
'';
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/woodpecker-ci/woodpecker/version.Version=${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://woodpecker-ci.org/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ambroisie techknowlogick ];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
{ lib, buildPackages, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }:
|
||||
let
|
||||
common = callPackage ./common.nix { };
|
||||
|
||||
esbuild_0_17_12 = buildPackages.esbuild.overrideAttrs (_: rec {
|
||||
version = "0.17.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "evanw";
|
||||
repo = "esbuild";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-75qDQWAp6cmuXtq90oIIQCj5IKUoQxNARxhFo2Sm5mk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||
});
|
||||
in
|
||||
mkYarnPackage {
|
||||
pname = "woodpecker-frontend";
|
||||
inherit (common) version;
|
||||
|
||||
src = "${common.src}/web";
|
||||
|
||||
packageJSON = ./woodpecker-package.json;
|
||||
yarnLock = ./yarn.lock;
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = ./yarn.lock;
|
||||
hash = common.yarnHash;
|
||||
};
|
||||
|
||||
ESBUILD_BINARY_PATH = lib.getExe esbuild_0_17_12;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
yarn --offline build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -R deps/woodpecker-ci/dist $out
|
||||
echo "${common.version}" > "$out/version"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for woodpecker-frontend again.
|
||||
doDist = false;
|
||||
|
||||
meta = common.meta // {
|
||||
description = "Woodpecker Continuous Integration server frontend";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{ buildGoModule, callPackage, woodpecker-frontend }:
|
||||
let
|
||||
common = callPackage ./common.nix { };
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "woodpecker-server";
|
||||
inherit (common) version src ldflags postInstall vendorHash;
|
||||
|
||||
postPatch = ''
|
||||
cp -r ${woodpecker-frontend} web/dist
|
||||
'';
|
||||
|
||||
subPackages = "cmd/server";
|
||||
|
||||
CGO_ENABLED = 1;
|
||||
|
||||
passthru = {
|
||||
inherit woodpecker-frontend;
|
||||
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = common.meta // {
|
||||
description = "Woodpecker Continuous Integration server";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq nix-prefetch pnpm-lock-export
|
||||
|
||||
# shellcheck shell=bash
|
||||
|
||||
if [ -n "$GITHUB_TOKEN" ]; then
|
||||
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
|
||||
fi
|
||||
|
||||
if [[ $# -gt 1 || $1 == -* ]]; then
|
||||
echo "Regenerates packaging data for the woodpecker packages."
|
||||
echo "Usage: $0 [git release tag]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
rev="$1"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "$rev" ]; then
|
||||
rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/woodpecker-ci/woodpecker/commits?per_page=1" | jq -r '.[0].sha')"
|
||||
fi
|
||||
|
||||
# Woodpecker repository
|
||||
src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "${rev}" | jq -r .sha256)
|
||||
|
||||
# Go modules
|
||||
mod_hash=$(nix-prefetch '{ sha256 }: (callPackage (import ./cli.nix) { }).go-modules.overrideAttrs (_: { modHash = sha256; })')
|
||||
|
||||
# Front-end dependencies
|
||||
woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/$rev"
|
||||
wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json
|
||||
|
||||
trap 'rm -rf pnpm-lock.yaml' EXIT
|
||||
wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/pnpm-lock.yaml"
|
||||
pnpm-lock-export --schema yarn.lock@v1
|
||||
yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
|
||||
# Use friendlier hashes
|
||||
src_hash=$(nix hash to-sri --type sha256 "$src_hash")
|
||||
mod_hash=$(nix hash to-sri --type sha256 "$mod_hash")
|
||||
yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
|
||||
|
||||
sed -i -E -e "s#rev = \".*\"#rev = \"$rev\"#" common.nix
|
||||
sed -i -E -e "s#srcHash = \".*\"#srcHash = \"$src_hash\"#" common.nix
|
||||
sed -i -E -e "s#modHash = \".*\"#modHash = \"$mod_hash\"#" common.nix
|
||||
sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$yarn_hash\"#" common.nix
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"name": "woodpecker-ci",
|
||||
"author": "Woodpecker CI",
|
||||
"version": "0.0.0",
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
"build": "vite build",
|
||||
"serve": "vite preview",
|
||||
"lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .",
|
||||
"formatcheck": "prettier -c .",
|
||||
"format:fix": "prettier --write .",
|
||||
"typecheck": "vue-tsc --noEmit",
|
||||
"test": "echo 'No tests configured' && exit 0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@intlify/unplugin-vue-i18n": "^0.9.2",
|
||||
"@kyvg/vue3-notification": "^2.9.0",
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"ansi_up": "^5.1.0",
|
||||
"dayjs": "^1.11.7",
|
||||
"floating-vue": "^2.0.0-beta.20",
|
||||
"fuse.js": "^6.6.2",
|
||||
"humanize-duration": "^3.28.0",
|
||||
"javascript-time-ago": "^2.5.9",
|
||||
"lodash": "^4.17.21",
|
||||
"node-emoji": "^1.11.0",
|
||||
"pinia": "^2.0.33",
|
||||
"prismjs": "^1.29.0",
|
||||
"vue": "^3.2.47",
|
||||
"vue-i18n": "^9.2.2",
|
||||
"vue-router": "^4.1.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify/json": "^2.2.36",
|
||||
"@types/humanize-duration": "^3.27.1",
|
||||
"@types/javascript-time-ago": "^2.0.3",
|
||||
"@types/lodash": "^4.14.191",
|
||||
"@types/node": "^18.15.3",
|
||||
"@types/node-emoji": "^1.8.2",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.55.0",
|
||||
"@typescript-eslint/parser": "^5.55.0",
|
||||
"@vitejs/plugin-vue": "^4.1.0",
|
||||
"@vue/compiler-sfc": "^3.2.47",
|
||||
"eslint": "^8.36.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-airbnb-typescript": "^17.0.0",
|
||||
"eslint-config-prettier": "^8.7.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-simple-import-sort": "^10.0.0",
|
||||
"eslint-plugin-vue": "^9.9.0",
|
||||
"eslint-plugin-vue-scoped-css": "^2.4.0",
|
||||
"prettier": "^2.8.5",
|
||||
"typescript": "5.0.2",
|
||||
"unplugin-icons": "^0.15.3",
|
||||
"unplugin-vue-components": "^0.24.1",
|
||||
"vite": "^4.2.0",
|
||||
"vite-plugin-prismjs": "^0.0.8",
|
||||
"vite-plugin-windicss": "^1.8.10",
|
||||
"vite-svg-loader": "^4.0.0",
|
||||
"vue-eslint-parser": "^9.1.0",
|
||||
"vue-tsc": "^1.2.0",
|
||||
"windicss": "^3.5.6"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue