O Boxxy (sensível à caixa) é uma ferramenta para encaixar aplicativos de comportamento inadimplente e forçando-os a colocar seus arquivos e diretórios no lugar certo, sem links simbólicos!
Boxxy faz parte do servidor Amyware Discord.
Se você gosta do que eu faço, considere me apoiar no Patreon:
Linux somente! O Boxxy usa namespaces Linux para sua funcionalidade.
Por exemplo, considere o tmux. Ele deseja colocar sua configuração em ~/.tmux.conf
. Com o Boxxy, você pode colocar sua configuração em ~/.config/tmux/tmux.conf
:
# ~/.config/boxxy/boxxy.yaml
rules :
- name : " redirect tmux config from ~/.tmux.conf to ~/.config/tmux/tmux.conf "
target : " ~/.tmux.conf "
rewrite : " ~/.config/tmux/tmux.conf "
mode : " file "
Estou em uma pausa na manutenção de projetos de código aberto devido a razões de saúde. Os PRs ainda serão aceitos e os problemas ainda serão analisados, mas não há promessas sobre quando isso acontecerá.
Recentemente, tive que usar a CLI da AWS. Ele deseja salvar dados em ~/.aws
, mas não quero que apenas confundir meu $HOME
como quiser. O Boxxy me permite forçá -lo a colocar seus dados em algum lugar agradável e adequado.
0.5.0
: Boxxy pode escanear seu homedir para sugerir automaticamente regras para você!0.6.0
: O Boxxy pode usar arquivos de projeto de projeto boxxy.yaml
e pode carregar arquivos .env
para você!0.6.1
: As regras Boxxy podem injetar Env vars:0.7.2
: Boxxy pode bifurcar o processo boxxed em segundo plano com o sinalizador --daemon
.0.8.0
: O Boxxy pode passar as regras na linha de comando com --rule
e desativar arquivos de configuração de carregamento com --no-config
.0.8.2
: Explique como executar appimages corretamente:git:(mistress) | ▶ cat ~ /.config/boxxy/boxxy.yaml
rules:
- name: " Store AWS CLI config in ~/.config/aws "
target: " ~/.aws "
rewrite: " ~/.config/aws "
git:(mistress) | ▶ boxxy aws configure
INFO boxxy > loaded 1 rules
INFO boxxy::enclosure > applying rule ' Store AWS CLI config in ~/.config/aws '
INFO boxxy::enclosure > redirect: ~ /.aws - > ~ /.config/aws
INFO boxxy::enclosure > boxed " aws " ♥
AWS Access Key ID [ **************** d]: a
AWS Secret Access Key [ **************** c]: b
Default region name [b]: c
Default output format [a]: d
git:(mistress) | ▶ ls ~ /.aws
git:(mistress) | ▶ ls ~ /.config/aws
config credentials
git:(mistress) | ▶ cat ~ /.config/aws/config
[default]
region = c
output = d
git:(mistress) | ▶
alias aws="boxxy aws"
(repita para outras ferramentas) O Boxxy exige que newuidmap
funcione, que não está incluído por padrão em todas as distribuições. Para instalar:
Alpino:
$ apk add shadow-uidmap
Debian / Ubuntu:
$ apt install uidmap
Rhel / Fedora:
$ yum install shadow-utils
O arquivo de configuração Boxxy vive em ~/.config/boxxy/boxxy.yaml
. Se não existir, um vazio será criado para você.
rules :
# The name of the rule. User-friendly name for your reference
- name : " redirect aws-cli from ~/.aws to ~/.config/aws "
# The target of the rule, ie the file/directory that will be shadowed by the
# rewrite.
target : " ~/.aws "
# The rewrite of the rule, ie the file/directory that will be used instead of
# the target.
rewrite : " ~/.config/aws "
- name : " use different k8s configs when in ~/Projects/my-cool-startup "
target : " ~/.kube/config "
rewrite : " ~/Projects/my-cool-startup/.kube/config "
# The context for the rule. Any paths listed in the context are paths where
# this rule will apply. If no context is specified, the rule applies
# globally.
context :
- " ~/Projects/my-cool-startup "
# The mode of this rule, either `directory` or `file`. `directory` is the
# default. Must be specified for the correct behaviour when the target is a
# file. Required because the target file/directory may not exist yet.
mode : " file "
# The list of commands that this rule applies to. If no commands are
# specified, the rule applies to all programs run with boxxy.
only :
- " kubectl "
rules :
- name : " any valid string " # required
target : " path " # required
rewrite : " path " # required
context : # optional
- " path "
- " path "
mode : " directory | file " # optional
only : # optional
- " binary name "
- " binary name "
env : # optional
KEY : " value "
pre-commit install
cargo build
cargo run -- ls -lah ~/.config
/
TMP/
rofixtures/helloworld-appimage-x86_84.AppImage
: https://github.com/clonedrepos/hello-world-apimage