~kaction/config

cae7bd4c8c0af6ac8a86e7bd2b778bd0d094cd99 — Dmitry Bogatov 3 years ago e9a34a2
Simplify build system: avoid dependency on net

Instead of fetching data at build time, it is stored under volatile/
and updated by another set of scripts.
7 files changed, 398 insertions(+), 29 deletions(-)

M Tupfile.lua
M aux/myrepos.salsa
D phony/gitolite.conf
D phony/salsa.list
A volatile/dircolors.256dark
A volatile/gitolite.conf
A volatile/salsa.list
M Tupfile.lua => Tupfile.lua +4 -27
@@ 6,11 6,6 @@ function uri.github(arg)
  return string.format(fmt, arg.repo, arg.ref or 'master', arg.path)
end

function rule.fetch(url, filename, sha1)
  local command = string.format('^ WGET %s^ ./aux/fetch %s %%o %s', filename, url, sha1)
  tup.rule({}, command, filename)
end

do
  files = {}
  files.relatives = {}


@@ 132,39 127,21 @@ do
end

do
  local filename = 'out/fetch/dircolors.256dark'
  do
    local url = uri.github { repo = 'seebi/dircolors-solarized'
                           , path = 'dircolors.256dark' }
    local sha1 = 'b8d654a3efd52fcfae0b7f1d419dd59a4d63b5a6'
    rule.fetch(url, filename, sha1)
  end
  local filename = 'volatile/dircolors.256dark'
  rule.dircolors('.local/share/posix/dircolors-256.sh', filename)
  rule.dircolors('.local/share/posix/dircolors-16.sh')
  rule.m4('.local/share/posix/color-list.sh', 'colorlist.m4')
end

do
  local url = 'https://cgit.iu-guest.info/gitolite-admin.git/plain/conf/gitolite.conf'
  local command = string.format('^ CURL %%o^ cat %%f; curl -s %s > %%o', url)
  tup.rule('phony/gitolite.conf', command, 'out/gitolite.conf')
end

do
  local input  = 'out/gitolite.conf'
  local input  = 'volatile/gitolite.conf'
  local output = outfile('.config/myrepos/iu-guest.conf')
  local command = './aux/myrepos.iu-guest < %f > %o'
  tup.rule(input, command, output)
end

do
  local input  = 'phony/salsa.list'
  local output = 'out/salsa-list.sh'
  local command = 'cat %f; ./aux/salsa-accessible > %o'
  tup.rule(input, command, output)
  tup.rule(output, './aux/myrepos.salsa > %o',
                   outfile('.config/myrepos/salsa.conf'))
end
tup.rule({}, './aux/myrepos.salsa < volatile/salsa.list > %o',
                 outfile('.config/myrepos/salsa.conf'))

rule.archive()


M aux/myrepos.salsa => aux/myrepos.salsa +1 -2
@@ 1,7 1,6 @@
#!/bin/sh -eu
. out/salsa-list.sh

for entry ; do
while read -r entry ; do
    cat << EOF
[devel/salsa/${entry}]
checkout = git clone https://salsa.debian.org/${entry}.git

D phony/gitolite.conf => phony/gitolite.conf +0 -0
D phony/salsa.list => phony/salsa.list +0 -0
A volatile/dircolors.256dark => volatile/dircolors.256dark +303 -0
@@ 0,0 1,303 @@

# Dark 256 color solarized theme for the color GNU ls utility.
# Used and tested with dircolors (GNU coreutils) 8.5
#
# @author  {@link http://sebastian.tramp.name Sebastian Tramp}
# @license http://sam.zoy.org/wtfpl/  Do What The Fuck You Want To Public License (WTFPL)
#
# More Information at
# https://github.com/seebi/dircolors-solarized

# Term Section
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM dvtm
TERM dvtm-256color
TERM eterm-color
TERM fbterm
TERM gnome
TERM gnome-256color
TERM jfbterm
TERM konsole
TERM konsole-256color
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM putty
TERM putty-256color
TERM rxvt
TERM rxvt-256color
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM rxvt-unicode256
TERM rxvt-unicode-256color
TERM screen
TERM screen-16color
TERM screen-16color-bce
TERM screen-16color-s
TERM screen-16color-bce-s
TERM screen-256color
TERM screen-256color-bce
TERM screen-256color-s
TERM screen-256color-bce-s
TERM screen-256color-italic
TERM screen-bce
TERM screen-w
TERM screen.linux
TERM screen.xterm-256color
TERM st
TERM st-meta
TERM st-256color
TERM st-meta-256color
TERM tmux
TERM tmux-256color
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-256color-italic
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
TERM xterm-termite

## Documentation
#
# standard colors
#
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#
#
# 256 color support
# see here: http://www.mail-archive.com/bug-coreutils@gnu.org/msg11030.html)
#
# Text 256 color coding:
# 38;5;COLOR_NUMBER
# Background 256 color coding:
# 48;5;COLOR_NUMBER

## Special files

NORMAL 00;38;5;244 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 00;38;5;33 # directory 01;34
LINK 00;38;5;37 # symbolic link. (If you set this to 'target' instead of a
 # numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 48;5;230;38;5;136;01 # pipe
SOCK 48;5;230;38;5;136;01 # socket
DOOR 48;5;230;38;5;136;01 # door
BLK 48;5;230;38;5;244;01 # block device driver
CHR 48;5;230;38;5;244;01 # character device driver
ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file
SETUID 48;5;160;38;5;230 # file that is setuid (u+s)
SETGID 48;5;136;38;5;230 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky
STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 00;38;5;64

## Archives or compressed (violet + bold for compression)
.tar    00;38;5;61
.tgz    00;38;5;61
.arj    00;38;5;61
.taz    00;38;5;61
.lzh    00;38;5;61
.lzma   00;38;5;61
.tlz    00;38;5;61
.txz    00;38;5;61
.zip    00;38;5;61
.z      00;38;5;61
.Z      00;38;5;61
.dz     00;38;5;61
.gz     00;38;5;61
.lz     00;38;5;61
.xz     00;38;5;61
.bz2    00;38;5;61
.bz     00;38;5;61
.tbz    00;38;5;61
.tbz2   00;38;5;61
.tz     00;38;5;61
.deb    00;38;5;61
.rpm    00;38;5;61
.jar    00;38;5;61
.rar    00;38;5;61
.ace    00;38;5;61
.zoo    00;38;5;61
.cpio   00;38;5;61
.7z     00;38;5;61
.rz     00;38;5;61
.apk    00;38;5;61
.gem    00;38;5;61

# Image formats (yellow)
.jpg    00;38;5;136
.JPG    00;38;5;136 #stupid but needed
.jpeg   00;38;5;136
.gif    00;38;5;136
.bmp    00;38;5;136
.pbm    00;38;5;136
.pgm    00;38;5;136
.ppm    00;38;5;136
.tga    00;38;5;136
.xbm    00;38;5;136
.xpm    00;38;5;136
.tif    00;38;5;136
.tiff   00;38;5;136
.png    00;38;5;136
.PNG    00;38;5;136
.svg    00;38;5;136
.svgz   00;38;5;136
.mng    00;38;5;136
.pcx    00;38;5;136
.dl     00;38;5;136
.xcf    00;38;5;136
.xwd    00;38;5;136
.yuv    00;38;5;136
.cgm    00;38;5;136
.emf    00;38;5;136
.eps    00;38;5;136
.CR2    00;38;5;136
.ico    00;38;5;136

# Files of special interest (base1)
.tex             00;38;5;245
.rdf             00;38;5;245
.owl             00;38;5;245
.n3              00;38;5;245
.ttl             00;38;5;245
.nt              00;38;5;245
.torrent         00;38;5;245
.xml             00;38;5;245
*Makefile        00;38;5;245
*Rakefile        00;38;5;245
*Dockerfile      00;38;5;245
*build.xml       00;38;5;245
*rc              00;38;5;245
*1               00;38;5;245
.nfo             00;38;5;245
*README          00;38;5;245
*README.txt      00;38;5;245
*readme.txt      00;38;5;245
.md              00;38;5;245
*README.markdown 00;38;5;245
.ini             00;38;5;245
.yml             00;38;5;245
.cfg             00;38;5;245
.conf            00;38;5;245
.h               00;38;5;245
.hpp             00;38;5;245
.c               00;38;5;245
.cpp             00;38;5;245
.cxx             00;38;5;245
.cc              00;38;5;245
.objc            00;38;5;245
.sqlite          00;38;5;245
.go              00;38;5;245
.sql             00;38;5;245
.csv             00;38;5;245

# "unimportant" files as logs and backups (base01)
.log        00;38;5;240
.bak        00;38;5;240
.aux        00;38;5;240
.lof        00;38;5;240
.lol        00;38;5;240
.lot        00;38;5;240
.out        00;38;5;240
.toc        00;38;5;240
.bbl        00;38;5;240
.blg        00;38;5;240
*~          00;38;5;240
*#          00;38;5;240
.part       00;38;5;240
.incomplete 00;38;5;240
.swp        00;38;5;240
.tmp        00;38;5;240
.temp       00;38;5;240
.o          00;38;5;240
.pyc        00;38;5;240
.class      00;38;5;240
.cache      00;38;5;240

# Audio formats (orange)
.aac    00;38;5;166
.au     00;38;5;166
.flac   00;38;5;166
.mid    00;38;5;166
.midi   00;38;5;166
.mka    00;38;5;166
.mp3    00;38;5;166
.mpc    00;38;5;166
.ogg    00;38;5;166
.opus   00;38;5;166
.ra     00;38;5;166
.wav    00;38;5;166
.m4a    00;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa    00;38;5;166
.oga    00;38;5;166
.spx    00;38;5;166
.xspf   00;38;5;166

# Video formats (as audio + bold)
.mov    00;38;5;166
.MOV    00;38;5;166
.mpg    00;38;5;166
.mpeg   00;38;5;166
.m2v    00;38;5;166
.mkv    00;38;5;166
.ogm    00;38;5;166
.mp4    00;38;5;166
.m4v    00;38;5;166
.mp4v   00;38;5;166
.vob    00;38;5;166
.qt     00;38;5;166
.nuv    00;38;5;166
.wmv    00;38;5;166
.asf    00;38;5;166
.rm     00;38;5;166
.rmvb   00;38;5;166
.flc    00;38;5;166
.avi    00;38;5;166
.fli    00;38;5;166
.flv    00;38;5;166
.gl     00;38;5;166
.m2ts   00;38;5;166
.divx   00;38;5;166
.webm   00;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 00;38;5;166
.anx 00;38;5;166
.ogv 00;38;5;166
.ogx 00;38;5;166



A volatile/gitolite.conf => volatile/gitolite.conf +58 -0
@@ 0,0 1,58 @@
@iu = iu

repo gitolite-admin
	RW+ = @iu
	R   = @all # Greatly simplify generation of mrconfig.

repo scroll
	RW+ = @iu
	R   = @all
	config cgit.section = "foundation"

repo testing
	RW+  = @all

repo experimental/patch-index.tgz
	config cgit.section = "experimental"
	RW+ = @iu
	R   = @all

repo asm-x86
	config cgit.section = "learning"
	RW+ = @iu
	R   = @all

repo website
	RW+ = @iu
	R   = @all
	config cgit.desc = "Sources of https://iu-guest.info website"
	option hook.post-update.00 = trigger-ci

repo ci-config
	RW+ = @iu
	R   = @all
	config cgit.desc = "Configuration of continous integration system"
	option hook.post-update.00 = trigger-ci

repo config
	RW = @iu
	R  = @all
	config cgit.desc = "Configuration of user environment"

repo evanescence
	RW = @iu
	R = @all
	config cgit.desc = "simple scaffolding utility"

repo system-config
	RW+ = iu-vps
	R   = @all

repo password-store
	RW+ = @iu

repo sebastian
	RW = @iu
	R  = @all
	config cgit.section = "experimental"
	config cgit.desc = "Suckless CI tool"

A volatile/salsa.list => volatile/salsa.list +32 -0
@@ 0,0 1,32 @@
debian/bcron
debian/slgdbm
haskell-team/DHG_packages
haskell-team/dh-haskell
haskell-team/git-annex
haskell-team/haskell-devscripts
haskell-team/haskell-intern
haskell-team/haskell-swish
haskell-team/package-plan
haskell-team/pandoc
haskell-team/pkg-haskell-tools
haskell-team/tools
iu-guest/cdist
iu-guest/complexity
iu-guest/dvtm
iu-guest/fbless
iu-guest/fgetty
iu-guest/gdbm
iu-guest/inotify-tools
iu-guest/laminar
iu-guest/mmh
iu-guest/sent
iu-guest/sysvinit
iu-guest/tup
runit-team/dh-make-runit
runit-team/dh-runit
runit-team/dh-sysuser
runit-team/irqbalance-run
runit-team/mini-httpd-run
runit-team/runit
runit-team/wicd-daemon-run
runit-team/xdm-run