no clue
This commit is contained in:
parent
c9535319c8
commit
46581aecdd
24
flake.lock
generated
24
flake.lock
generated
@ -28,11 +28,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748489961,
|
"lastModified": 1751638848,
|
||||||
"narHash": "sha256-uGnudxMoQi2c8rpPoHXuQSm80NBqlOiNF4xdT3hhzLM=",
|
"narHash": "sha256-7HiC6w4ROEbMmKtj5pilnLOJej9HkkfU9wEd5QSTyNo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "95c988cf08e9a5a8fe7cc275d5e3f24e9e87bd51",
|
"rev": "7d9e3c35f0d46f82bac791d76260f15f53d83529",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -49,11 +49,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748352827,
|
"lastModified": 1751313918,
|
||||||
"narHash": "sha256-sNUUP6qxGkK9hXgJ+p362dtWLgnIWwOCmiq72LAWtYo=",
|
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
|
||||||
"owner": "nix-darwin",
|
"owner": "nix-darwin",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "44a7d0e687a87b73facfe94fba78d323a6686a90",
|
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -65,11 +65,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748406211,
|
"lastModified": 1751596331,
|
||||||
"narHash": "sha256-B3BsCRbc+x/d0WiG1f+qfSLUy+oiIfih54kalWBi+/M=",
|
"narHash": "sha256-7WSzIrw0nCl8iYroj7c//LLsf2zgNEIJNyUSvx4MPLI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3d1f29646e4b57ed468d60f9d286cde23a8d1707",
|
"rev": "472908faa934435cf781ae8fac77291af3d137d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -88,11 +88,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748508910,
|
"lastModified": 1751642422,
|
||||||
"narHash": "sha256-KIe/4Vum4kUvj8BP5cNhc3yUdfyU1ajS/tKSxstVgZw=",
|
"narHash": "sha256-hvYrV5Wu6EwIIVsq9hpnIacrvykgZ7SxgTQ4a465sag=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "624ce0fd6d30a2e9ed2bf8da7daab2b0a84ffa76",
|
"rev": "390876721dd32c9797da8935dd912477c4533311",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
36
flake.nix
36
flake.nix
@ -22,16 +22,14 @@
|
|||||||
|
|
||||||
# Necessary for using flakes on this system.
|
# Necessary for using flakes on this system.
|
||||||
nix.settings.experimental-features = "nix-command flakes";
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
|
nix.settings.warn-dirty = false;
|
||||||
# Enable alternative shell support in nix-darwin.
|
|
||||||
# programs.fish.enable = true;
|
|
||||||
|
|
||||||
# Set Git commit hash for darwin-version.
|
# Set Git commit hash for darwin-version.
|
||||||
system.configurationRevision = self.rev or self.dirtyRev or null;
|
system.configurationRevision = self.rev or self.dirtyRev or null;
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
# $ darwin-rebuild changelog
|
# $ darwin-rebuild changelog
|
||||||
system.stateVersion = 5;
|
system.stateVersion = 6;
|
||||||
|
|
||||||
# The platform the configuration will be used on.
|
# The platform the configuration will be used on.
|
||||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
@ -66,8 +64,13 @@
|
|||||||
|
|
||||||
homebrew = {
|
homebrew = {
|
||||||
enable = true;
|
enable = true;
|
||||||
brews = [];
|
brews = [ "asdf" "libyaml" "libpq" "k9s"
|
||||||
casks = [ "raycast" "firefox" "slack" ];
|
{
|
||||||
|
name = "postgresql@17";
|
||||||
|
restart_service = "changed";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
casks = [ "raycast" "firefox" "slack" "google-chrome" "cursor" "qbittorrent" "vlc" "obsidian" ];
|
||||||
onActivation = {
|
onActivation = {
|
||||||
cleanup = "zap";
|
cleanup = "zap";
|
||||||
};
|
};
|
||||||
@ -89,15 +92,13 @@
|
|||||||
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
tailscale = {
|
tailscale.enable = true;
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.backupFileExtension = "bak";
|
home-manager.backupFileExtension = "bak";
|
||||||
home-manager.users.andrei = {
|
home-manager.users.andrei = {
|
||||||
home.packages = [];
|
home.packages = [ pkgs.go];
|
||||||
home.stateVersion = "25.11";
|
home.stateVersion = "25.11";
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
@ -126,6 +127,10 @@
|
|||||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
ublock-origin
|
ublock-origin
|
||||||
onepassword-password-manager
|
onepassword-password-manager
|
||||||
|
sponsorblock
|
||||||
|
imagus
|
||||||
|
reddit-enhancement-suite
|
||||||
|
react-devtools
|
||||||
];
|
];
|
||||||
settings = {};
|
settings = {};
|
||||||
};
|
};
|
||||||
@ -136,7 +141,7 @@
|
|||||||
"full-screen-api.warning.timeout" = 0;
|
"full-screen-api.warning.timeout" = 0;
|
||||||
"browser.fullscreen.exit_on_escape" = false;
|
"browser.fullscreen.exit_on_escape" = false;
|
||||||
"browser.tabs.closeWindowWithLastTab" = false;
|
"browser.tabs.closeWindowWithLastTab" = false;
|
||||||
"browser.ctrlTab.recentlyUsedOrder" = true;
|
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
||||||
"browser.startup.page" = 3;
|
"browser.startup.page" = 3;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -154,6 +159,8 @@
|
|||||||
pkgs.vscode-extensions.ms-dotnettools.csdevkit
|
pkgs.vscode-extensions.ms-dotnettools.csdevkit
|
||||||
pkgs.vscode-extensions.ms-dotnettools.csharp
|
pkgs.vscode-extensions.ms-dotnettools.csharp
|
||||||
pkgs.vscode-extensions.ms-dotnettools.vscode-dotnet-runtime
|
pkgs.vscode-extensions.ms-dotnettools.vscode-dotnet-runtime
|
||||||
|
pkgs.vscode-extensions.shopify.ruby-lsp
|
||||||
|
pkgs.vscode-extensions.castwide.solargraph
|
||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
"editor.fontSize" = 16;
|
"editor.fontSize" = 16;
|
||||||
@ -177,7 +184,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
#silent = true;
|
silent = true;
|
||||||
};
|
};
|
||||||
zsh = {
|
zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -190,6 +197,10 @@
|
|||||||
syntaxHighlighting = {
|
syntaxHighlighting = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
envExtra = ''
|
||||||
|
# Add asdf shims to PATH
|
||||||
|
export PATH="$HOME/.asdf/shims:$PATH"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -227,7 +238,6 @@
|
|||||||
services = {
|
services = {
|
||||||
ollama = {
|
ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "devstral:24b" "gemma3:12b" "gemma3:1b" ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
2
scripts/edit-os/.envrc
Normal file
2
scripts/edit-os/.envrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
watch_file gemset.nix
|
||||||
|
use flake
|
||||||
1
scripts/edit-os/.gitignore
vendored
Normal file
1
scripts/edit-os/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.direnv
|
||||||
7
scripts/edit-os/Gemfile
Normal file
7
scripts/edit-os/Gemfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
# gem "rails"
|
||||||
|
|
||||||
|
gem "ruby_llm", "~> 1.3"
|
||||||
42
scripts/edit-os/Gemfile.lock
Normal file
42
scripts/edit-os/Gemfile.lock
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
base64 (0.3.0)
|
||||||
|
event_stream_parser (1.0.0)
|
||||||
|
faraday (2.13.1)
|
||||||
|
faraday-net_http (>= 2.0, < 3.5)
|
||||||
|
json
|
||||||
|
logger
|
||||||
|
faraday-multipart (1.1.0)
|
||||||
|
multipart-post (~> 2.0)
|
||||||
|
faraday-net_http (3.4.0)
|
||||||
|
net-http (>= 0.5.0)
|
||||||
|
faraday-retry (2.3.1)
|
||||||
|
faraday (~> 2.0)
|
||||||
|
json (2.12.2)
|
||||||
|
logger (1.7.0)
|
||||||
|
marcel (1.0.4)
|
||||||
|
multipart-post (2.4.1)
|
||||||
|
net-http (0.6.0)
|
||||||
|
uri
|
||||||
|
ruby_llm (1.3.0)
|
||||||
|
base64
|
||||||
|
event_stream_parser (~> 1)
|
||||||
|
faraday (>= 1.10.0)
|
||||||
|
faraday-multipart (>= 1)
|
||||||
|
faraday-net_http (>= 1)
|
||||||
|
faraday-retry (>= 1)
|
||||||
|
marcel (~> 1.0)
|
||||||
|
zeitwerk (~> 2)
|
||||||
|
uri (1.0.3)
|
||||||
|
zeitwerk (2.7.3)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
arm64-darwin-24
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
ruby_llm (~> 1.3)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.6.7
|
||||||
9
scripts/edit-os/edit_os.rb
Normal file
9
scripts/edit-os/edit_os.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
require 'ruby_llm'
|
||||||
|
|
||||||
|
RubyLLM.configure do |config|
|
||||||
|
config.ollama_api_base = "http://127.0.0.1:11434/v1"
|
||||||
|
end
|
||||||
|
|
||||||
|
chat = RubyLLM.chat(model: 'qwen3:8b', provider: :ollama)
|
||||||
|
|
||||||
|
print chat.ask "What's the best way to learn Ruby? Answer in 10 words or less /nothink"
|
||||||
186
scripts/edit-os/flake.lock
generated
Normal file
186
scripts/edit-os/flake.lock
generated
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"bob-ruby": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747288354,
|
||||||
|
"narHash": "sha256-OcnnbsQ0cKLhXA6T1ytaLUVZViBn5cZoXFsdlvRruSI=",
|
||||||
|
"owner": "bobvanderlinden",
|
||||||
|
"repo": "nixpkgs-ruby",
|
||||||
|
"rev": "5d7598f3059fff0cbd0dc4756f9d87f8cb7f3f7c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "bobvanderlinden",
|
||||||
|
"repo": "nixpkgs-ruby",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bundix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721093334,
|
||||||
|
"narHash": "sha256-5FghZ0HIETbc0TGcBV8uyixq5z4w/9PF5Puhujz3D1o=",
|
||||||
|
"owner": "inscapist",
|
||||||
|
"repo": "bundix",
|
||||||
|
"rev": "42c08846f7e5d91ef121239fd364feaeb22c0bbc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "inscapist",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "bundix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694529238,
|
||||||
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fu": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748856973,
|
||||||
|
"narHash": "sha256-RlTsJUvvr8ErjPBsiwrGbbHYW8XbB/oek0Gi78XdWKg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e4b09e47ace7d87de083786b404bf232eb6c89d8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678875422,
|
||||||
|
"narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"bob-ruby": "bob-ruby",
|
||||||
|
"bundix": "bundix",
|
||||||
|
"fu": "fu",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"ruby-nix": "ruby-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ruby-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744623277,
|
||||||
|
"narHash": "sha256-0HWA2YD9v71SHyMF11PKnVJcHnrHhRLHDCldlUbzYII=",
|
||||||
|
"owner": "inscapist",
|
||||||
|
"repo": "ruby-nix",
|
||||||
|
"rev": "43964ced23803f49e2d307fbbfd4e03ed23760c0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "inscapist",
|
||||||
|
"repo": "ruby-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
92
scripts/edit-os/flake.nix
Normal file
92
scripts/edit-os/flake.nix
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
description = "A simple ruby app demo";
|
||||||
|
|
||||||
|
nixConfig = {
|
||||||
|
extra-substituters = "https://nixpkgs-ruby.cachix.org";
|
||||||
|
extra-trusted-public-keys = "nixpkgs-ruby.cachix.org-1:vrcdi50fTolOxWCZZkw0jakOnUI1T19oYJ+PRYdK4SM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "nixpkgs";
|
||||||
|
ruby-nix.url = "github:inscapist/ruby-nix";
|
||||||
|
# a fork that supports platform dependant gem
|
||||||
|
bundix = {
|
||||||
|
url = "github:inscapist/bundix/main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
fu.url = "github:numtide/flake-utils";
|
||||||
|
bob-ruby.url = "github:bobvanderlinden/nixpkgs-ruby";
|
||||||
|
bob-ruby.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
fu,
|
||||||
|
ruby-nix,
|
||||||
|
bundix,
|
||||||
|
bob-ruby,
|
||||||
|
}:
|
||||||
|
with fu.lib;
|
||||||
|
eachDefaultSystem (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ bob-ruby.overlays.default ];
|
||||||
|
};
|
||||||
|
rubyNix = ruby-nix.lib pkgs;
|
||||||
|
|
||||||
|
# TODO generate gemset.nix with bundix
|
||||||
|
gemset = if builtins.pathExists ./gemset.nix then import ./gemset.nix else { };
|
||||||
|
|
||||||
|
# If you want to override gem build config, see
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/ruby-modules/gem-config/default.nix
|
||||||
|
gemConfig = { };
|
||||||
|
|
||||||
|
# See available versions here: https://github.com/bobvanderlinden/nixpkgs-ruby/blob/master/ruby/versions.json
|
||||||
|
ruby = pkgs."ruby-3.4.4";
|
||||||
|
|
||||||
|
# Running bundix would regenerate `gemset.nix`
|
||||||
|
bundixcli = bundix.packages.${system}.default;
|
||||||
|
|
||||||
|
# Use these instead of the original `bundle <mutate>` commands
|
||||||
|
bundleLock = pkgs.writeShellScriptBin "bundle-lock" ''
|
||||||
|
export BUNDLE_PATH=vendor/bundle
|
||||||
|
bundle lock
|
||||||
|
'';
|
||||||
|
bundleUpdate = pkgs.writeShellScriptBin "bundle-update" ''
|
||||||
|
export BUNDLE_PATH=vendor/bundle
|
||||||
|
bundle lock --update
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
inherit
|
||||||
|
(rubyNix {
|
||||||
|
inherit gemset ruby;
|
||||||
|
name = "my-rails-app";
|
||||||
|
gemConfig = pkgs.defaultGemConfig // gemConfig;
|
||||||
|
})
|
||||||
|
env
|
||||||
|
;
|
||||||
|
|
||||||
|
devShells = rec {
|
||||||
|
default = dev;
|
||||||
|
dev = pkgs.mkShell {
|
||||||
|
buildInputs =
|
||||||
|
[
|
||||||
|
env
|
||||||
|
bundixcli
|
||||||
|
bundleLock
|
||||||
|
bundleUpdate
|
||||||
|
]
|
||||||
|
++ (with pkgs; [
|
||||||
|
rufo
|
||||||
|
# more packages here
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
176
scripts/edit-os/gemset.nix
Normal file
176
scripts/edit-os/gemset.nix
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
{
|
||||||
|
base64 = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "0.3.0";
|
||||||
|
};
|
||||||
|
event_stream_parser = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1j73glgif3f97q3znq9ih67h5i7zd1wqzj2d33w8cqhjf2mkns52";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.0.0";
|
||||||
|
};
|
||||||
|
faraday = {
|
||||||
|
dependencies = ["faraday-net_http" "json" "logger"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0xbv450qj2bx0qz9l2pjrd3kc057y6bglc3na7a78zby8ssiwlyc";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "2.13.1";
|
||||||
|
};
|
||||||
|
faraday-multipart = {
|
||||||
|
dependencies = ["multipart-post"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0l87r9jg06nsh24gwwd1jdnxb1zq89ffybnxab0dd90nfcf0ysw5";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.1.0";
|
||||||
|
};
|
||||||
|
faraday-net_http = {
|
||||||
|
dependencies = ["net-http"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "3.4.0";
|
||||||
|
};
|
||||||
|
faraday-retry = {
|
||||||
|
dependencies = ["faraday"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "00swh1var1576yvvz4yfw3xbg3y5ky47kg2rsdh57z213yigl120";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "2.3.1";
|
||||||
|
};
|
||||||
|
json = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1x5b8ipv6g0z44wgc45039k04smsyf95h2m5m67mqq35sa5a955s";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "2.12.2";
|
||||||
|
};
|
||||||
|
logger = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.7.0";
|
||||||
|
};
|
||||||
|
marcel = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "190n2mk8m1l708kr88fh6mip9sdsh339d2s6sgrik3sbnvz4jmhd";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.0.4";
|
||||||
|
};
|
||||||
|
multipart-post = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1a5lrlvmg2kb2dhw3lxcsv6x276bwgsxpnka1752082miqxd0wlq";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "2.4.1";
|
||||||
|
};
|
||||||
|
net-http = {
|
||||||
|
dependencies = ["uri"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "0.6.0";
|
||||||
|
};
|
||||||
|
ruby_llm = {
|
||||||
|
dependencies = ["base64" "event_stream_parser" "faraday" "faraday-multipart" "faraday-net_http" "faraday-retry" "marcel" "zeitwerk"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0bg6rmhr11ich5k2pc3yjdzf969hn2mcmj2k1wnqrkj8g87d8ydd";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.3.0";
|
||||||
|
};
|
||||||
|
uri = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "1.0.3";
|
||||||
|
};
|
||||||
|
zeitwerk = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j";
|
||||||
|
target = "ruby";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
targets = [];
|
||||||
|
version = "2.7.3";
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user