#!/usr/bin/make -f # -*- Make -*- all: gitano-configured USERS := git lorry cache # $1 == username to make define make_user_rules /home/$1/.created: adduser -g "Trove $1 service" -s /bin/bash -D $1 su -c 'mkdir .ssh; chmod 750 .ssh' - $1 su -c 'ssh-keygen -t rsa -N "" -q -f .ssh/id_rsa' - $1 (cat /etc/ssh/ssh_host_*_key.pub | cut -d\ -f1,2 | \ sed -e's/^/'$(shell hostname)',localhost /' > \ /home/$1/.ssh/known_hosts) chown $1:$1 /home/$1/.ssh/known_hosts chmod 600 /home/$1/.ssh/known_hosts touch $$@ ALL_USER_TARGETS := $$(ALL_USER_TARGETS) /home/$1/.created endef $(eval $(foreach USER,$(USERS),$(call make_user_rules,$(USER)))) users: $(ALL_USER_TARGETS) gitano-configured: users su -c 'gitano-setup /etc/gitano-setup.clod' - git