Rename grapho to pal, add onboard command, fix interactive input

- Rename grapho → pal across entire codebase (CLI, NixOS module,
  flake, docs, config paths)
- Add `pal onboard` interactive setup wizard with 4 steps:
  device, config repo, sync, backups
- Shows current setup summary when re-running onboard on an
  existing installation with warnings about what will change
- Fix askConfirm/askInput to read from /dev/tty so interactive
  prompts work correctly
- Remove || operator usage in askConfirm (not reliable in Lux)
- Add pal package to nix develop shell
- Document ~/.config/pal/ directory structure in README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 22:38:37 -05:00
parent 05c04b209c
commit d30d2efa4e
7 changed files with 637 additions and 208 deletions

View File

@@ -42,7 +42,7 @@
# Shared modules for all hosts
sharedModules = [
./modules/grapho.nix
./modules/pal.nix
./modules/nb.nix
./modules/syncthing.nix
./modules/backup.nix
@@ -66,36 +66,36 @@
};
in {
# Grapho CLI package
# Pal CLI package
packages = forAllSystems (system:
let
pkgs = nixpkgsFor.${system};
luxPkg = lux.packages.${system}.default;
in {
grapho = pkgs.stdenv.mkDerivation {
pname = "grapho";
pal = pkgs.stdenv.mkDerivation {
pname = "pal";
version = "0.1.0";
src = ./cli;
nativeBuildInputs = [ luxPkg pkgs.gcc ];
buildPhase = ''
${luxPkg}/bin/lux compile grapho.lux -o grapho
${luxPkg}/bin/lux compile pal.lux -o pal
'';
installPhase = ''
mkdir -p $out/bin
cp grapho $out/bin/
cp pal $out/bin/
'';
meta = {
description = "Personal data infrastructure CLI";
homepage = "https://github.com/user/grapho";
homepage = "https://github.com/user/pal";
license = pkgs.lib.licenses.mit;
};
};
default = self.packages.${system}.grapho;
default = self.packages.${system}.pal;
}
);
@@ -144,7 +144,7 @@
else
echo "Error: Cannot find setup script"
echo "Run from the repo directory, or clone it first:"
echo " git clone ssh://git@your-server:2222/you/grapho.git"
echo " git clone ssh://git@your-server:2222/you/pal.git"
exit 1
fi
fi
@@ -173,6 +173,7 @@
packages = [
lux.packages.${system}.default
self.packages.${system}.pal
] ++ (with pkgs; [
# Tier 2: Notes & Sync
nb # Notebook CLI
@@ -203,12 +204,11 @@
]);
shellHook = ''
printf '\033[1m%s\033[0m\n' "Ultimate Notetaking, Sync & Backup System"
printf '\033[1m%s\033[0m\n' "pal - Your personal data, everywhere"
echo ""
echo "Get started: ./setup"
echo "Pair mobile: ./setup mobile"
echo "Sync: ./scripts/usync"
echo "Status: ./scripts/ustatus"
echo "Get started: pal onboard"
echo "Status: pal status"
echo "Help: pal help"
'';
};
}
@@ -216,7 +216,7 @@
# Export modules for use in other flakes
nixosModules = {
grapho = import ./modules/grapho.nix;
pal = import ./modules/pal.nix;
nb = import ./modules/nb.nix;
syncthing = import ./modules/syncthing.nix;
backup = import ./modules/backup.nix;