|
Warning: this is a htmlized version!
The original is across this link. |
#######
#
# E-scripts on maintaing my home page.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/a/e/page.e>
# or at <http://angg.twu.net/e/page.e.html>.
# See also <http://angg.twu.net/emacs.html>,
# <http://angg.twu.net/a/.emacs[.html]>,
# <http://angg.twu.net/a/.zshrc[.html]>,
# <http://angg.twu.net/escripts.html>,
# and <http://angg.twu.net/>.
#
#######
#####
#
# Uploading the full page
# 99dec12
#
#####
# «twu_99dec12»
# make the bundle, upload to twu, generate things there
rm /tmp/page.tgz
make -f ~/TH/Makefile /tmp/page.tgz
anonftp angg.twu.net 'lcd /tmp' 'put page.tgz' 'quit'
# Always update ~/pagetwu.tgz after a full upload
cp /tmp/page.tgz ~/pagetwu.tgz
# «twu_make_page»
# At twu (with zsh; use sshtwu and eevt):
rm -fRv ~/public_html/
mkdir ~/public_html/
cd ~/public_html/
tar -xvzf ~/page.tgz
touch $(find * -type f)
# Do I need this hack?
echo -n > a/s/Makefile.auto
sleep 2
touch a/s/Files.tcl
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile makefile all |& tee ~/om
cp -v ~/page.tgz ~/public_html/a/s/page.tgz
# On errors...
cd ~/public_html/
echo '-------' >> ~/om
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile makefile all |& tee -a ~/om
# (find-twufile "om")
# (find-twufile "public_html/a/s/map.th")
rm -fRv ~/public_html/
# Some hacks that I'm no longer using.
# twu has no expect, so:
#cd ~/public_html/a/s
#grep -v /usr/bin/expect Generate > Generate_tclsh
#mv Generate_tclsh Generate
#chmod 755 Generate
#cd ~/public_html/
# Another hack: twu's Tcl is 7.6 and search.th breaks, so...
#cat > a/s/search.th <<'---'
#htmlize {Links on search engines} {
# [P (temporarily broken on twu due to incompatibilities between Tcl
# 7.6 and Tcl 8.0, sorry...)]
#}
#---
#####
#
# Partial uploads
# 99dec27
#
#####
# «upload_changes»
rm /tmp/page.tgz
rm -Rv /tmp/oldpage/
rm -Rv /tmp/newpage/
cd ~/TH/L/
make -f ~/TH/Makefile /tmp/page.tgz
mkdir /tmp/oldpage/
cd /tmp/oldpage/
tar -xvzf ~/pagetwu.tgz
mkdir /tmp/newpage/
cd /tmp/newpage/
tar -xvzf /tmp/page.tgz
# Delete the files that haven't changed:
cd /tmp/newpage/
for i in $(find * -type f); do
cmp $i ../oldpage/$i && rm -v $i
done
# Pack the changed files and upload them.
cd /tmp/newpage/
tar -cvzf /tmp/pagechanges.tgz $(find * -type f)
laf /tmp/pagechanges.tgz
anonftp angg.twu.net 'lcd /tmp' 'put pagechanges.tgz' 'quit'
# «twu_big_remake»
# Way 1, remaking everything.
# At twu, with sshtwu, we do:
#
rm -fRv ~/public_html/
mkdir ~/public_html/
cd ~/public_html/
tar -xvzf ~/page.tgz
tar -xvzf ~/pagechanges.tgz
tar -cvzf ~/newpage.tgz $(find * -type f)
touch $(find * -type f)
#
echo -n > a/s/Makefile.auto
sleep 2
touch a/s/Files.tcl
#
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile makefile all |& tee ~/om
cp -v ~/newpage.tgz ~/public_html/a/s/page.tgz
mv -v ~/newpage.tgz ~/page.tgz
# «twu_minimal_remake»
# Way 2, "non-destructive".
# We just change some files and remake.
# At twu, with sshtwu:
#
cd ~/public_html/
tar -xvzf ~/pagechanges.tgz
touch $(tar -tzf ~/pagechanges.tgz)
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile makefile all |& tee ~/om
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile /tmp/page.tgz
mv -v /tmp/page.tgz ~/page.tgz
cp -v ~/page.tgz ~/public_html/a/s/page.tgz
# After doing things by way 1 or way 2, we do, at angg:
laf ~/pagetwu.tgz /tmp/page.tgz
mv /tmp/page.tgz ~/pagetwu.tgz
#####
#
# upload my page to angelfire, from twu
# 00jan12
#
#####
# (find-fline "~/.netrc
# (find-fline "edrx@angg.twu.net:.netrc")
# at angg:
cd
grep angelfire ~/.netrc | tee ~/o
anonftp angg.twu.net 'put .netrc' 'chmod 600 .netrc' 'quit'
# at twu:
# twu doesn't have expect, so I can't use my anonftp script
cd ~/public_html/
(echo hash on
echo prompt off
find * -type d | awk '{print "mkdir ", $1}'
find * -type f | sort | awk '{printf "!echo %s :\nput %s %s\n", $1, $1, $1}'
) > ~/o
ftp ftp.angelfire.com < ~/o |& tee ~/o2
#####
#
# upload the PUC mirror (from twu)
# 00jan12
#
#####
# with sshsucuri:
cd; wget http://angg.twu.net/a/s/page.tgz
mv page.tgz.1 page.tgz
makepage
#####
#
# Making a bundle to upload and testing it
# 99dec06
#
#####
# (find-fline "~/TH/")
# (find-fline "~/TH/Makefile")
# (find-fline "~/.zshrc" "makeR")
rm -Rv /tmp/tmppage
mkdir /tmp/tmppage
cd /tmp/tmppage
rm /tmp/page.tgz
make -f ~/TH/Makefile /tmp/page.tgz |& tee ~/omp
# (find-fline "~/omp")
# As edrx:
rm -fRv ~/public_html/
mkdir ~/public_html/
cd ~/public_html/
tar -xvzf /tmp/page.tgz
make DOREMOTE=1 THDIR=a/s -f a/s/Makefile makefile all |& tee ~/om
# Check broken local links:
rm -Rv /tmp/dlpage/
mkdir /tmp/dlpage/
cd /tmp/dlpage/
wget -r -np -nv http://127.0.0.1/~edrx/ |& tee ~/ow
egrep ':($| )' ~/ow > ~/ow2
egrep ':$' ~/ow > ~/ow3
egrep ':$' ~/ow | sort | uniq > ~/ow4
cd ~edrx/public_html/
find * -type f | sort > ~/o1
cd /tmp/dlpage/127.0.0.1/~edrx/
find * -type f | sort > ~/o2
cd
diff o1 o2 | tee ~/o3
# (find-fline "~/ow")
# (find-fline "~/ow2")
# (find-fline "~/ow3")
# (find-fline "~/ow4")
# (find-fline "~/o3")
# Hunt the errors by hand.
lynx http://127.0.0.1/~edrx/
#####
#
# Fixing search.th, that broke on Tcl7.6
# 99dec18
#
#####
# (find-fline "~/TH/search.th")
# (find-fline "~/TH/L/a/s/search.th")
cd ~/TH/L/
tcl7.6 /home/root/TH/Generate search.html a/s/search.th
htmlize {foo} {
[HLIST1 {Shortcuts for power searches (ugly outside lynx!!!):}
[J <form action=\"http://www.deja.com/qs.xp\" method=get>
<input type=hidden name=\"ST\" value=\"PS\">
<input type=hidden name=\"svcclass\" value=\"dnyr\">
[HLIST2 {DejaNews power search}
[J Keywords:
<input type="text" name="QRY" size="30" value="">
<input type="submit" value="(search now)">
]
[J Match [SELECT defaultOp 1 AND all OR any] keywords
]
[J Archive:
[SELECT DBS 1 1 complete 2 standard 3 adult 4 jobs 5 {for sale}]
]
[J Results type:
[SELECT OP 1
dnquery.xp discussions
ratesearch.xp ratings
commsearch.xp communities
CLASSIC {Deja Classic}
]
]
[J Language:
[SELECT LNG 1
ALL any
chinese Chinese
danish Danish
dutch Dutch
english English
finnish Finnish
french French
german German
hungarian Hungarian
italian Italian
japanese Japanese
korean Korean
norwegian Norwegian
portuguese Portuguese
polish Polish
russian Russian
spanish Spanish
swedish Swedish
vietnamese Vietnamese
]
]
[J Subject (example: FAQ or (frequently asked questions)):
<input type=text name=subjects size=30>
]
[J Forum (example: alt.tv.x-files or *x-files*)
<input type=text name=groups size=30>
]
[J Author (example: demos@deja.com)
<input type=text name=authors size=30>
]
[J From (example: Apr 1 1997):
<input type=text name=fromdate size=12>
]
[J To (example: Apr 5 1997):
<input type=text name=todate size=12>
]
[J Sort by
[SELECT showsort 1
score confidence
subject subject
newsgroup forum
author author
date date
]
]
[J Results per page:
[SELECT maxhits 1 25 25 50 50 100 100]
]
[J <input type=\"submit\" value=\"Search\">
]
]
</form>
]
}
#####
#
# Notes on making
# 99sep15
#
#####
# (find-fline "~/om")
# (find-fline "~/.zshrc" "makeL=")
# (find-fline "~/TH/Makefile.th")
# (find-node "(zsh)Conditional Expressions" "-nt")
# (find-node "(zsh)Alternate Forms For Complex Commands")
# (find-fline "~/.zshrc" "makepage")
# (find-fline "~/TH/")
# (find-fline "~/TH/Makefile.L")
# (find-fline "~/TH/Makefile.L.auto")
# (find-fline "~/TH/Htmllib.tcl")
# (find-fline "~/TH/Files.tcl")
# (find-fline "~/TH/Generate")
#####
#
# Extracting e-scripts descriptions
#
#####
# (find-node "(gawk)Top")
# (find-node "(gawk)If Statement")
# (find-node "(gawk)String Functions" "substr(")
cd $ES/
for i in *.e; do
echo -n "$i: "
awk '{if ($0=="#") {if (n==1) exit; else n+=1}
else if (n==1) print substr($0, 3)
}' $i
done | tee ~/o
######
#
# vcsa2pnm (screenshots of vts; Icon version)
# 99sep15
#
######
# «vcsa2pnm_icon»
# (find-fline "~/ICON/vcsa2pnm.icn")
cd ~/ICON/
icont -s vcsa2pnm
# vcsa2pnm > /tmp/v.pnm
vcsa2pnm /home/root/C/math1.8 2 > /tmp/v.pnm
display /tmp/v.pnm
cd ~/ICON/
icont -s vcsa2pnm
~/ICON/vcsa2pnm /home/root/C/math1.8 2 \
| convert - /tmp/v.png
laf /tmp
cd /tmp
zgv
# (find-vldifile "pnmtopng.list")
# (find-fline "/usr/doc/pnmtopng/")
######
#
# vcsa2pnm (mktclapp version)
# 99oct04
#
######
# «vcsa2pnm»
# (find-fline "~/MTA/vtutil.tcl")
# (find-fline "~/.emacs")
# (find-fline "/etc/inittab" "kbrequest")
# (find-fline "~/bin/kbrequest")
cd ~/MTA/
vtutil vcsa2pnm /dev/vcsa1 256 8 math1.8 /tmp/1.pnm
convert /tmp/1.pnm /tmp/1.png
laf /tmp/1*
# Timing:
cd ~/MTA/
time vtutil vcsa2pnm /dev/vcsa1 256 8 math1.8 /tmp/1.pnm
time pnmtopng /tmp/1.pnm > /tmp/1.png
time pnmtopng < /tmp/1.pnm > /tmp/1.png
time convert /tmp/1.pnm /tmp/1c.png
laf /tmp/1*
# "convert" is faster and compresses color output better.
# 99dec06: but when I tried to use these pngs in netscape I noticed
# that it (netscape 4.5) really really really doesn't like the pngs
# generated by convert; so, use the one created by pnmtopng for
# anything serious.
# Old command line (obsolete):
# ./vtutil.tcl vcsa2pnm math2.8 8 /dev/vcsa1 /tmp/1.pnm
#####
#
# Binding Alt-Up to a screen-capture script
# 99dec06
#
#####
# «capture_screen»
# (find-fline "/etc/inittab" "kbrequest")
# (find-fline "~/bin/kbrequest")
if [[ -e /tmp/ncaptures ]]; then
N=$(</tmp/ncaptures)
else
N=0
fi
N=$[$N+1]
echo $N > /tmp/ncaptures
cd /home/root/MTA/
./vtutil.tcl vcsa2pnm math2.8 8 /dev/vcsa1 /tmp/$N.pnm
/usr/X11R6/bin/convert /tmp/$N.pnm /tmp/$N.png
rm /tmp/$N.pnm
exit
######
#
# old notes on converting vcsas into pngs
# 99sep14
#
######
# (find-vldifile "imagemagick.list")
# (find-fline "/usr/doc/imagemagick/")
# (* (* 80 8) (* 50 8) 3)
# -> 768000
pdsc /big/slinks1/dists/slink/main/source/graphics/netpbm-free_19940301.2-7.dsc
cd /usr/src/netpbm-free-19940301.2/
# man2t pbm/pbm.5 | l
# man2t pgm/pgm.5 | l
man2t pnm/pnm.5 | l
man2t ppm/ppm.5 | l
#####
#
# Condensing forms
#
#####
# «condensing_forms»
# (find-enode "Regexps")
# (find-fline "~/TH/search.th")
(query-replace-regexp
"^<option value=\\(\"\\([^\"]*\\)\"\\|\\([^ >]*\\)\\)\\( selected\\)?>"
"\\2\\3 ")
(query-replace-regexp
"^<select name=\\(\"\\([^\"]*\\)\"\\|\\([^ >]*\\)\\) size=\\([^>]*\\)>"
"[SELECT \\2\\3 \\4")
# Test on this:
Language:
<select name="LNG" size=1>
<option value=ALL selected>any
<option value=chinese>Chinese
<option value="danish">Danish
<option value=dutch>Dutch
</select>
#####
#
# html.007: converting .ths from the old format
# 99sep??
#
#####
# (find-fline "~/.zshrc" "getstrings")
# (eeman "perlop" "REPLACEMENT")
# (eeman "perldata" "hash literal")
# Tool to help me select which "$..."s to replace
#
cd $PAGE
for i in *.th; do
perl -ne 'while ( m/(\$[0-9A-Za-z_]+)( |$)/gc ) { print $1, "\n"; }' < $i
done | sort | uniq
# Convert (partially) most of the old pages to the new format
#
cat > /tmp/p <<'---'
%a = ( '$ANGG' => 'ANGG', '$E' => 'ES', '$L' => 'L', '$L2' => 'L',
'$LR' => 'LR', '$Ldir' => 'L', '$Loc' => 'LOC', '$bf' => 'BF', '$h3'
=> 'H3', '$hlist1' => 'HLIST1', '$hlist2' => 'HLIST2', '$href' =>
'HREF', '$ifLR' => 'IFLR', '$it' => 'IT', '$j' => 'J', '$li' => 'LI',
'$list1' => 'LIST1', '$p' => 'P', '$pre' => 'PRE', '$q' => 'Q', '$t'
=> 'T', '$t0' => 'T1', '$tt' => 'TT' );
s/(\$[0-9A-Za-z_]+)( |$)/($a{$1}||$1).$2/eg;
print $_;
---
# perl -nl /tmp/p < $PAGE/ebabble.th
for i in crashco debian ebabble escripts files forth haskell html icon \
index linux logic math music other perl redhat0 tcltk tese tex \
unclassified; do
echo $i.th
perl -nl /tmp/p < $PAGE/$i.th > ~/TCL/PAGE2/$i.th
done
# (find-fline "~/TCL/PAGE/")
# (find-fline "~/TCL/PAGE2/")
cd ~/TCL/PAGE2/
make
#####
#
# angelfire
# 99oct08
#
#####
# «angelfire»
# (find-es "http" "tcl_http")
# (find-fline "$S/http/www.angelfire.com/or2/edrx/")
psne https://www.angelfire.com/or2/edrx/
lynx https://www.angelfire.com/or2/edrx/
ftp ftp.angelfire.com
cd incoming
cd $ES
cd ~/TH/L/
anonftp ftp.angelfire.com 'cd incoming' 'put index.html edrxindex.html'
# (find-fline "~/.psne.log")
find $S/http/www.angelfire.com/
find $S/http/help.angelfire.com/
cd $S/http/www.angelfire.com/cgi-bin/
getforms < bedit.html
cp bedit.html /tmp
edrxnetscape /tmp/bedit.html
A=$S/http/help.angelfire.com/bin/help
cd $A
rm -v $(find * -type l)
for i in $(find * -type f); do ln -s $(basename $i) $i.html; done
A=$S/http/help.angelfire.com/bin/help
lynx -force_html $A/B-Homepage_Building_Help/G-Uploading
lynx -force_html $A/B-Homepage_Building_Help/A-Web_Shell
lynx -force_html $A/A-General_Questions/A-About_Angelfire_Membership
grep angel ~/.psne.log
# (find-fline "$S/http/www.angelfire.com/cgi-bin")
# (find-fline "$S/http/www.angelfire.com/cgi-bin/_webshell.html")
http://help.angelfire.com/bin/help/B-Homepage_Building_Help/G-Uploading
http://help.angelfire.com/bin/help/A-General_Questions/A-About_Angelfire_Membership
https://www.angelfire.com/cgi-bin/register
http://help.angelfire.com/bin/help/B-Homepage_Building_Help/A-Web_Shell
https://www.angelfire.com/doc/ftpupload.html