Move xonsh header/footer to separate files Add gregpy as the default Python version used in xonsh Add Nix profile to PATH in xonsh ahead of tmux path mangling to allow python3 with modules to be discovered
79 lines
2.1 KiB
Plaintext
79 lines
2.1 KiB
Plaintext
# vim: set ft=python :
|
|
|
|
#$PKG_CONFIG_PATH = '/usr/local/lib/pkgconfig'
|
|
#$JAVA_HOME = '/etc/alternatives/java_sdk'
|
|
def _rebuild(args):
|
|
import os
|
|
system = os.uname()
|
|
if system.sysname == 'Darwin':
|
|
darwin-rebuild --flake ~/.config/nix switch
|
|
else:
|
|
sudo nixos-rebuild switch
|
|
|
|
def _yaml2json(args, stdin=None, stdout=None):
|
|
import sys, yaml, json
|
|
from yaml import CLoader
|
|
json.dump(yaml.load(stdin, Loader=CLoader), stdout, indent=4)
|
|
|
|
def _py2env(args):
|
|
vox new @(args[0]) -p /usr/bin/python2
|
|
|
|
def _py3env(args):
|
|
vox new @(args[0])
|
|
|
|
def _rundock(args):
|
|
if os.path.exists('/usr/bin/podman'):
|
|
e = 'podman'
|
|
else:
|
|
e = 'docker'
|
|
@(e) exec -ti @(args[0]) /bin/bash
|
|
|
|
def _pip_extras(args):
|
|
import importlib_metadata
|
|
print(importlib_metadata.metadata(args[0]).get_all('Provides-Extra'))
|
|
|
|
# Container stuff
|
|
def _newdock(args):
|
|
if os.path.exists('/usr/bin/podman'):
|
|
e = 'podman'
|
|
else:
|
|
e = 'docker'
|
|
@(e) run -P --privileged=true -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v @(os.getcwd()):/dmnt -v /etc/pki:/etc/pki:ro -d --name @(args[1]) @(args[0]) /sbin/init
|
|
rundock @(args[1])
|
|
|
|
def _unknown_host(args):
|
|
sed -i -e @(args[0])d ~/.ssh/known_hosts
|
|
|
|
def _bake(args):
|
|
from pathlib import Path
|
|
templates = Path("~/.copier-templates/").expanduser()
|
|
if not templates.exists():
|
|
git clone src:greg/copier-templates.git ~/.copier-templates
|
|
copier copy @(str(templates / args[0])) .
|
|
|
|
aliases['bake'] = _bake
|
|
aliases['rebuild'] = _rebuild
|
|
aliases['yaml2json'] = _yaml2json
|
|
aliases['py2env'] = _py2env
|
|
aliases['py3env'] = _py3env
|
|
aliases['rundock'] = _rundock
|
|
aliases['newdock'] = _newdock
|
|
aliases['unknown_host'] = _unknown_host
|
|
aliases['pip_extras'] = _pip_extras
|
|
###
|
|
#
|
|
# Other random nice-to-have things
|
|
#
|
|
###
|
|
|
|
# Does virtualenv support
|
|
xontrib load vox
|
|
# Faster coreutils
|
|
xontrib load coreutils
|
|
|
|
# Allows identifying JSON as if it was Python by adding some new builtins to the language
|
|
import builtins
|
|
builtins.true = True
|
|
builtins.false = False
|
|
builtins.null = None
|