{ config, lib, pkgs, ... }:
let
cfg = config.this.lang.golang;
graphical = config.this.graphical;
in with lib; {
options = {
this.lang.golang.enable = mkOption {
default = graphical.enable;
type = with types; bool;
};
config = mkIf cfg.enable {
home-manager.users.james = {
programs.go = {
enable = true;
goPath = ".local/go";
goBin = ".local/bin.go";
home.packages = with pkgs; [
air
gocode
golangci-lint
gomodifytags
gopls
gore
gotests
];
environment.systemPackages = with pkgs; [ gcc gccgo go libcap ];
}