From c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Fri, 18 Oct 2024 17:07:46 +0200 Subject: refactor(modules): Move all system modules to `by-name` From now on all modules should be added to the new `by-name` directory. This should help remove the (superficial and utterly useless) distinction between `home-manager` and `NixOS` modules. --- modules/home.legacy/conf/python/default.nix | 6 ++++++ modules/home.legacy/conf/python/pythonrc.py | 33 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 modules/home.legacy/conf/python/default.nix create mode 100644 modules/home.legacy/conf/python/pythonrc.py (limited to 'modules/home.legacy/conf/python') diff --git a/modules/home.legacy/conf/python/default.nix b/modules/home.legacy/conf/python/default.nix new file mode 100644 index 00000000..826d466d --- /dev/null +++ b/modules/home.legacy/conf/python/default.nix @@ -0,0 +1,6 @@ +{config, ...}: { + xdg.configFile."python/pythonrc".source = ./pythonrc.py; + programs.zsh.sessionVariables = { + "PYTHONSTARTUP" = "${config.xdg.configHome}/python/pythonrc"; + }; +} diff --git a/modules/home.legacy/conf/python/pythonrc.py b/modules/home.legacy/conf/python/pythonrc.py new file mode 100644 index 00000000..466d9788 --- /dev/null +++ b/modules/home.legacy/conf/python/pythonrc.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + + +def is_vanilla() -> bool: + import sys + + return not hasattr(__builtins__, "__IPYTHON__") and "bpython" not in sys.argv[0] + + +def setup_history(): + import os + import atexit + import readline + from pathlib import Path + + if state_home := os.environ.get("XDG_DATA_HOME"): + state_home = Path(state_home) + else: + state_home = Path.home() / ".local" / "state" + + history: Path = state_home / "python" / "history" + + if not os.path.exists(history): + open(history, "w") + + readline.read_history_file(str(history)) + atexit.register(readline.write_history_file, str(history)) + + +if is_vanilla(): + setup_history() + +# vim: ft=python -- cgit 1.4.1