### in-rsync.tcl  -*- Tcl -*-
## Animate Rsync access for the Internet walkthrough.

### Ivan Shmakov, 2020

## To the extent possible under law, the author(s) have dedicated
## all copyright and related and neighboring rights to this software
## to the public domain worldwide.  This software is distributed
## without any warranty.

## You should have received a copy of the CC0 Public Domain Dedication
## along with this software.  If not, see
## <http://creativecommons.org/publicdomain/zero/1.0/>.

### Code:

package require aniputs
package require anisamp

namespace eval anima::ti::in-rsync {
alias kbd   ani_kbd   ev
alias samp  ani_samp  ev
}

proc anima::segment::in-rsync::animate { varn { pre-samp 0 } { pre-kbd 2500 } } {
    upvar $varn ev
    if { ${pre-samp} >= 0 } { samp {[ivan@fable] ~$ } ${pre-samp} }

    kbd "rsync -- rsync://mirror.yandex.ru/ \n" ${pre-kbd}
    samp {altlinux       	ALT Linux tree
altlinux-beta  	ALT Linux beta tree
altlinux-nightly	ALT Linux nightly tree
altlinux-starterkits	ALT Linux Starter Kits
archlinux      	Arch Linux tree
archlinux32    	Arch Linux 32bit tree
archlinuxarm   	Arch Linux ARM tree
archserver     	Arch Linux Server tree
}
    samp {asplinux       	Full ASPLinux tree
asplinux-tigro 	Tigro packages for ASPLinux
astra          	Astra Linux mirror
calculate      	Calculate Linux
centos         	Full CentOS tree
debian         	Debian main archive
debian-backports	Debian Backports
debian-multimedia	Debian multimedia archive
debian-ports   	Debian Ports
debian-security	Debian Linux Security
debian-volatile	Debian Volatile archive
debian-cd      	Debian Linux CD
} 127 223
    samp {fedora         	Fedora, ATrpms, Livna, Tigro Repositories
fedora-enchilada	Fedora - the whole enchilada
fedora-linux-releases	Fedora Linux Releases
fedora-linux-updates	Fedora Linux Updates
fedora-linux-core	Fedora Linux Core
fedora-linux-core-updates	Fedora Linux Core Updates
fedora-linux-extras	Fedora Linux Extras
fedora-linux-development	Fedora Linux Development (Rawhide)
fedora-epel    	Extra Packages for Enterprise Linux
fedora-secondary	Fedora Secondary Architectures
fedora-tigro   	Tigro packages for Fedora
} 127 223
    samp {freebsd        	FreeBSD
gentoo-distfiles	Gentoo Linux source tree
gentoo-portage 	Gentoo Linux Portage tree
kernel.org     	Kernel.org tree
knoppix        	Knoppix
libreoffice    	LibreOffice
linuxmint      	LinuxMint
linuxmint-packages	LinuxMint Packages
lotos          	Lotos Packages
} 127 223
    samp {macports       	Mac Ports
mageia         	Mageia Linux
mirrors        	Some other archives
openbsd        	OpenBSD mirror
openmandriva   	OpenMandriva mirror
opensuse       	openSUSE mirror
puias          	Springdale (PUIAS) Linux
puppyrus       	PuppyRus Linux
rosa-linux     	ROSA Linux
runtu          	Runtu, Russian Ubuntu
} 127 223
    samp {sabayon        	Sabayon Linux
scientificlinux	Scientific Linux
slackware      	Slackware tree
slackwarearm   	Slackware ARM tree
ubuntu         	Ubuntu Linux Repository
ubuntu-ports   	Ubuntu Ports Linux Repository
ubuntu-cdimage 	Ubuntu Linux DVD
ubuntu-releases	Ubuntu Linux Releases
yandexrepo     	Yandex Repository
[ivan@fable] ~$ } 127 223

    set rlwait 173

    kbd ""
    samp "rsync -- rsync://mirror.yandex.ru/ "
    kbd "\bdebian-cd/ \n" ${rlwait}
    samp {drwxr-xr-x          4,096 2020/05/14 06:35:12 .
-rw-r--r--             29 2020/05/14 06:35:12 .mirror.yandex.ru
lrwxrwxrwx              6 2020/05/10 00:20:17 current
lrwxrwxrwx             11 2020/05/11 04:39:55 current-live
-rw-r--r--         15,293 2020/05/14 06:12:02 ls-lR.gz
drwxr-xr-x          4,096 2020/05/10 00:15:43 10.4.0-live
drwxr-sr-x          4,096 2020/05/10 00:20:22 10.4.0
drwxr-xr-x          4,096 2005/05/23 16:50:12 project
[ivan@fable] ~$ }

    kbd ""
    samp "rsync -- rsync://mirror.yandex.ru/debian-cd/ "
    kbd "\b10.4.0-live/ \n" ${rlwait}
    samp {drwxr-xr-x          4,096 2020/05/10 00:15:43 .
drwxr-xr-x          4,096 2020/05/10 00:15:43 amd64
drwxr-xr-x          4,096 2020/05/10 00:15:43 i386
drwxr-xr-x          4,096 2020/05/10 00:15:43 source
[ivan@fable] ~$ }

    kbd ""
    samp "rsync -- rsync://mirror.yandex.ru/debian-cd/10.4.0-live/ "
    kbd "\bamd64/ \n" ${rlwait}
    samp {drwxr-xr-x          4,096 2020/05/10 00:15:43 .
drwxr-xr-x          4,096 2020/05/10 00:17:56 bt-hybrid
drwxr-xr-x          4,096 2020/05/10 00:17:57 iso-hybrid
[ivan@fable] ~$ }

    kbd ""
    samp "rsync -- rsync://mirror.yandex.ru/debian-cd/10.4.0-live/amd64/ "
    kbd "\biso-hybrid/ \n" ${rlwait}
    samp {drwxr-xr-x          4,096 2020/05/10 00:17:57 .
-rw-r--r--          1,984 2020/05/09 15:43:00 HEADER.html
-rw-r--r--          2,288 2020/05/09 12:23:37 MD5SUMS
-rw-r--r--            833 2020/05/10 00:17:56 MD5SUMS.sign
-rw-r--r--          2,544 2020/05/09 12:23:37 SHA1SUMS
-rw-r--r--            833 2020/05/10 00:17:56 SHA1SUMS.sign
-rw-r--r--          3,312 2020/05/09 12:23:37 SHA256SUMS
-rw-r--r--            833 2020/05/10 00:17:57 SHA256SUMS.sign
-rw-r--r--          5,360 2020/05/09 12:23:37 SHA512SUMS
-rw-r--r--            833 2020/05/10 00:17:57 SHA512SUMS.sign
-rw-r--r--            630 2020/05/09 10:48:57 base_debs.list
}
    samp {-rw-r--r--         53,318 2020/05/09 11:06:44 debian-live-10.4.0-amd64-cinnamon.contents
-rw-r--r--  2,530,885,632 2020/05/09 11:05:56 debian-live-10.4.0-amd64-cinnamon.iso
-rw-r--r--      1,018,448 2020/05/09 11:06:45 debian-live-10.4.0-amd64-cinnamon.log
-rw-r--r--         71,079 2020/05/09 10:51:35 debian-live-10.4.0-amd64-cinnamon.packages
-rw-r--r--         53,318 2020/05/09 11:06:45 debian-live-10.4.0-amd64-gnome.contents
-rw-r--r--  2,561,900,544 2020/05/09 11:05:10 debian-live-10.4.0-amd64-gnome.iso
-rw-r--r--        986,670 2020/05/09 11:06:46 debian-live-10.4.0-amd64-gnome.log
-rw-r--r--         69,250 2020/05/09 10:50:27 debian-live-10.4.0-amd64-gnome.packages
} 127 223
    samp {-rw-r--r--         53,336 2020/05/09 11:06:46 debian-live-10.4.0-amd64-kde.contents
-rw-r--r--  2,757,427,200 2020/05/09 11:06:35 debian-live-10.4.0-amd64-kde.iso
-rw-r--r--      1,156,977 2020/05/09 11:06:46 debian-live-10.4.0-amd64-kde.log
-rw-r--r--         81,901 2020/05/09 10:52:39 debian-live-10.4.0-amd64-kde.packages
-rw-r--r--         53,559 2020/05/09 11:06:46 debian-live-10.4.0-amd64-lxde.contents
-rw-r--r--  2,406,481,920 2020/05/09 11:03:41 debian-live-10.4.0-amd64-lxde.iso
-rw-r--r--        956,426 2020/05/09 11:06:47 debian-live-10.4.0-amd64-lxde.log
-rw-r--r--         65,780 2020/05/09 10:49:28 debian-live-10.4.0-amd64-lxde.packages
} 127 223
    samp {-rw-r--r--         53,559 2020/05/09 11:06:47 debian-live-10.4.0-amd64-lxqt.contents
-rw-r--r--  2,525,937,664 2020/05/09 11:04:08 debian-live-10.4.0-amd64-lxqt.iso
-rw-r--r--        949,567 2020/05/09 11:06:48 debian-live-10.4.0-amd64-lxqt.log
-rw-r--r--         65,332 2020/05/09 10:50:14 debian-live-10.4.0-amd64-lxqt.packages
-rw-r--r--         53,805 2020/05/09 11:06:48 debian-live-10.4.0-amd64-mate.contents
-rw-r--r--  2,499,805,184 2020/05/09 11:02:49 debian-live-10.4.0-amd64-mate.iso
-rw-r--r--        928,276 2020/05/09 11:06:48 debian-live-10.4.0-amd64-mate.log
-rw-r--r--         63,862 2020/05/09 10:49:34 debian-live-10.4.0-amd64-mate.packages
} 127 223
    samp {-rw-r--r--         54,774 2020/05/09 11:06:48 debian-live-10.4.0-amd64-standard.contents
-rw-r--r--    916,455,424 2020/05/09 10:44:00 debian-live-10.4.0-amd64-standard.iso
-rw-r--r--        358,731 2020/05/09 11:06:49 debian-live-10.4.0-amd64-standard.log
-rw-r--r--         19,847 2020/05/09 10:39:07 debian-live-10.4.0-amd64-standard.packages
-rw-r--r--         53,623 2020/05/09 11:06:49 debian-live-10.4.0-amd64-xfce.contents
-rw-r--r--  2,382,364,672 2020/05/09 11:00:07 debian-live-10.4.0-amd64-xfce.iso
-rw-r--r--        945,674 2020/05/09 11:06:49 debian-live-10.4.0-amd64-xfce.log
-rw-r--r--         65,052 2020/05/09 10:48:57 debian-live-10.4.0-amd64-xfce.packages
[ivan@fable] ~$ } 127 223

    kbd "rsync -v -ub -rOtH --suffix=.~\"\$(date +%s)\"~ --include=10.4.0-live/{,amd64/{,iso-hybrid/{,debian-live-10.4.0-amd64-kde.log}}} --exclude=\\* -- rsync://mirror.yandex.ru/debian-cd/ /tmp/debian-cd.ivan/ \n"
    samp {receiving incremental file list
created directory /tmp/debian-cd.ivan
10.4.0-live/
10.4.0-live/amd64/
10.4.0-live/amd64/iso-hybrid/
10.4.0-live/amd64/iso-hybrid/debian-live-10.4.0-amd64-kde.log

sent 206 bytes  received 1,157,468 bytes  771,782.67 bytes/sec
total size is 1,156,977  speedup is 1.00
[ivan@fable] ~$ }

    kbd ""
    samp "rsync -v -ub -rOtH --suffix=.~\"\$(date +%s)\"~ --include=10.4.0-live/{,amd64/{,iso-hybrid/{,debian-live-10.4.0-amd64-kde.log}}} --exclude=\\* -- rsync://mirror.yandex.ru/debian-cd/ /tmp/debian-cd.ivan/ "
    kbd "\n"
    samp {receiving incremental file list

sent 174 bytes  received 159 bytes  222.00 bytes/sec
total size is 1,156,977  speedup is 3,474.41
[ivan@fable] ~$ }

    kbd "tree -aF -- /tmp/de"
    samp "bian-cd.ivan/"
    kbd " \n" ${rlwait}
    samp {/tmp/debian-cd.ivan/
└── 10.4.0-live/
    └── amd64/
        └── iso-hybrid/
            └── debian-live-10.4.0-amd64-kde.log

3 directories, 1 file
[ivan@fable] ~$ }

    kbd "find /tmp/de"
    samp "bian-cd.ivan/"
    kbd " -xdev -type f -exec file -- {} + \n" ${rlwait}
    samp {/tmp/debian-cd.ivan/10.4.0-live/amd64/iso-hybrid/debian-live-10.4.0-amd64-kde.log: Non-ISO extended-ASCII text, with very long lines
[ivan@fable] ~$ }

    kbd "rhash --printf=%B{sha-256}\\ %s\\ %p\\\\n --recursive -- /tmp/de"
    samp "bian-cd.ivan/"
    kbd "\b \n" ${rlwait}
    samp {K2rYei34s14/U4aub1P8Qlrgi+pdTFcqMkiqyslLTfE= 1156977 10.4.0-live/amd64/iso-hybrid/debian-live-10.4.0-amd64-kde.log
[ivan@fable] ~$ }
}

### in-rsync.tcl ends here
