Files
6.824-golabs-2021-6.824/src/shardmaster/mkclass.sh
Lily Tsai 34a311648c update
2021-02-10 08:39:42 -08:00

83 lines
1.7 KiB
Bash

#!/bin/sh
#
# create or update 6.824-golabs-YEAR
#
# if a directory has a file mkclass.ignore, ignore the files listed in that file
umask 2
# update this repository:
CLASSREPO=git@g.csail.mit.edu:6.824-golabs-2021
# include only these src/ directories (e.g. not paxos)
SRCS="mr mrapps main labrpc raft kvraft shardkv shardmaster labgob porcupine models"
SD=$(cd $(dirname $0)/.. && /bin/pwd)
CD=/tmp/golabs.$$
git clone $CLASSREPO $CD || exit 1
mkdir -p $CD/src/
cp $SD/mygo/Makefile $CD/Makefile
(cd $CD/ && git add Makefile 2> /dev/null )
cp $SD/mygo/.check-build $CD/.check-build
(cd $CD/ && git add .check-build 2> /dev/null )
cp $SD/mygo/.gitignore $CD/.gitignore
(cd $CD/ && git add .gitignore 2> /dev/null )
cp $SD/mygo/src/.gitignore $CD/src/.gitignore || exit 1
(cd $CD/src && git add .gitignore)
cp $SD/mygo/src/go.mod $CD/src/go.mod
(cd $CD/ && git add src/go.mod 2> /dev/null )
cp $SD/mygo/src/go.sum $CD/src/go.sum
(cd $CD/ && git add src/go.sum 2> /dev/null )
# for D in `(cd $SD/mygo/src ; ls)`
for D in `echo $SRCS`
do
mkdir -p $CD/src/$D || exit 1
(cd $SD/mygo/src/$D
for F in `ls`
do
if [ -s mkclass.ignore ]
then
if grep -q $F mkclass.ignore
then
I=1
else
I=0
fi
else
I=0
fi
if [ "$F" = "out" ]
then
I=1
fi
if [ "$F" = "mkclass.ignore" ]
then
I=1
fi
if echo $F | grep -q '~$'
then
I=1
fi
if [ $I -eq 1 ]
then
echo "ignore $F"
else
$SD/bin/mklab.pl $CD/src/$D $F
(cd $CD/src/$D && git add $F 2> /dev/null )
fi
done)
done
(cd $CD ; git commit -am 'update')
echo "Now, examine and push the repo in $CD"