[COFF] What is your prompt?

Steffen Nurpmeso steffen at sdaoden.eu
Tue Dec 28 04:37:15 AEST 2021


Theodore Ts'o wrote in
 <YcjcC7x8TrMq4kvy at mit.edu>:
 |On Sun, Dec 26, 2021 at 12:43:37AM +0100, Steffen Nurpmeso wrote:
 |> I usually do "scp .* HOST:" whenever i get a HOST account, and
 |> forget about it thereafter.
 |
 |I keep a private git repo on one of my machines, so when I get a HOST
 |account, I run a comand like this:
 |
 |% git clone ssh://tytso@example.com/home/tytso/repos/dotfiles .
 |% cd dotfiles
 |% make
 |
 |This installs a bunch of symlinks from
 |dotfiles/{.bashrc,.profile,.muttrc}, etc. to $HOME/.
 |
 |That way, I can run "git pull" to update my dotfiles on one particular
 |machine, and if I make local changes, I'll do a "git push" to send
 |them back to my dotfiles repo.

Negative.. but i have sort of this for root accounts, less any
fancy make(1) mechanism, however, but there is ~/sic/root.git, and
locally i merge/bundle according branches into machine specific
branche(s) that can then be pushed/fetched.
(My spare "wales" even simply selectively shares the filesystem
via snapshots, it is just which /root/.git branch is checked out,
and one "/root/bin/backup.sh restore" after FS synchronization;
same shared static kernel, but different ssh keys and /etc/hosts,
hostname via kernel command line, thanks to /dev/mapper even
/etc/fstab is identical.  I can git merge "kent" into "wales", and
git just does it right!)

I "only have symlinks" in my non-root ~/, but i have to create
them manually.  I do not have many accounts i work with:
practically all VMs for building+testing software, so not much
effort getting cosy there.  Here on "kent" i created them on April
13th 2019, only added .irssi on April 22nd once i started using
IRC, too.  That is manageable.
And all the directories that then exist nonetheless, ~/sic,
~/{,sec.}arena, ~/$USR (~/usr-kent-crux-linux-x86_64/{bin,lib..}
here) are created by ~/.profile when i login the first time with
the symlink tree present.  (But of course they are empty, hm.)

It all _is_ in a sec.arena/configs.git directory, but there is
home/ as well as .home/ and some others, and only home/ content is
to be distributed, so i go into that home and scp(1).  The data in
there is pretty stable, and what changes sometimes, for example my
mailer's config when its development continues, or the .cwmrc just
got a "pkill -CONT tmux" last week (^Z delivery sometimes hits
tmux not the terminal within where it is typed), is needed only
locally.  But your approach is much nicer.

Just to add that ~/sic is an encfs mount of ~/.sic, ~/.mozilla of
~/.secweb-mozilla (normal browsing container mounts a specific
/home partition), and ~/sec.arena of ~/.sec.arena, only the latter
two of which are permanently mounted when the lid is up.

Really, i love what has become possible with modern hard- and
software!

 |The Makefile I have in my top-level repo some folks might find
 |interesting:
 |
 |.PHONY: all bin dotfiles
 |
 |all: dotfiles
 |
 |DIRS= .gnupg .mutt .config/gce-xfstests .config/gcloud/configurations \
 |bin em
 |#DBG= echo
 |
 |dotfiles:
 | for file in $(shell find $(CURDIR) -maxdepth 1 -type f -name ".*" \
 |     -not -name ".*~" -not -name ".gitignore" -print); do \
 |  f=$$(basename $$file); \
 |  if test -f $(HOME)/$$f -a ! -h $(HOME)/$$f ; then \
 |   mkdir -p backup ; \
 |   mv $(HOME)/$$f backup ; \
 |  fi ; \
 |  $(DBG) ln -sfn $$file $(HOME)/$$f; \
 | done
 | for dir in $(DIRS) ; do \
 |     $(DBG) mkdir -p $(HOME)/$$dir ; \
 |     for file in $$(find $$(pwd)/$$dir -maxdepth 1 -type f \
 |  -not -name "*~" -print); do \
 |  f=$$(basename $$file); \
 |  if test -f $(HOME)/$$dir/$$f -a ! -h $(HOME)/$$dir/$$f ; then \
 |   mkdir -p backup/$$dir ; \
 |   mv $(HOME)/$$dir/$$f backup/$$dir ; \
 |  fi ; \
 |  $(DBG) ln -sfn $$file $(HOME)/$$dir/$$f; \
 |     done; \
 | done
 | if test -d backup ; then find backup -type f -print ; fi

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)


More information about the COFF mailing list