-function upload() {
- if [ $# = 0 ]; then
- echo usage: upload file [file...]
- return 100
- fi
- pwd=$PWD/
- pwd=${pwd##/home/iain/www/}
- if echo $pwd | grep -q ^/; then
- echo not rooted under /home/iain/www
- unset pwd
- return 111
- fi
-# scp ${1+"$@"} 64.176.170.109:/home/iain/$pwd
- lftp -c "open web1.viagold.net; cd $pwd; mput $@"
- unset pwd
-}
-
-function download() {
- if [ $# = 0 ]; then
- echo usage: download file [file...]
- return 100
- fi
- pwd=$PWD/
- pwd=${pwd##/home/iain/www/}
- if echo $pwd | grep -q ^/; then
- echo not rooted under /home/iain/www
- unset pwd
- return 111
+ # Sort all scripts by dependencies.
+ profile_d=${PROFILE_HOME:-~}/.profile.d
+ deps=
+ unsorted=
+ for i in $profile_d/*.bashrc; do
+ dep=$(sed -n 's/^##*[ ]*profile-required:[ ]*//p' "$i")
+ i="${i##$profile_d/}"
+ if [ -n "$dep" ]; then
+ for d in $dep; do
+ deps="$deps
+$d $i"
+ done
+ else
+ unsorted="$unsorted
+$i"
+ fi
+ done
+
+ deps="$deps$unsorted"
+
+ # Avoid odd number of tokens for tsort.
+ n=$(echo "$deps" | wc -w)
+ if [ $((n%2)) = 1 ]; then
+ deps="$deps
+${deps##*
+}"