ready for ics2020

This commit is contained in:
Zihao Yu
2020-09-04 10:55:21 +08:00
parent c3969eab67
commit 38f8b8a966
3 changed files with 56 additions and 33 deletions

View File

@ -2,15 +2,15 @@ include nemu/Makefile.git
default: default:
@echo "Please run 'make' under any subprojects to compile." @echo "Please run 'make' under any subprojects to compile."
clean: clean:
-$(MAKE) -C nemu clean -$(MAKE) -s -C nemu clean
-$(MAKE) -C nexus-am clean -$(MAKE) -s -C abstract-machine clean-all
-$(MAKE) -C nanos-lite clean -$(MAKE) -s -C nanos-lite clean
-$(MAKE) -C navy-apps clean -$(MAKE) -s -C navy-apps clean
submit: clean submit: clean
git gc git gc
STUID=$(STUID) STUNAME=$(STUNAME) bash -c "$$(curl -s http://ics.nju.edu.cn/people/yanyanjiang/teach/submit.sh)" STUID=$(STUID) STUNAME=$(STUNAME) bash -c "$$(curl -s http://jyywiki.cn/static/submit.sh)"
.PHONY: default clean submit .PHONY: default clean submit

View File

@ -1,17 +1,19 @@
# ICS2019 Programming Assignment # ICS2020 Programming Assignment
This project is the programming assignment of the class ICS(Introduction to Computer System) in Department of Computer Science and Technology, Nanjing University. This project is the programming assignment of the class ICS(Introduction to Computer System)
in Department of Computer Science and Technology, Nanjing University.
For the guide of this programming assignment, For the guide of this programming assignment,
refer to http://nju-ics.gitbooks.io/ics2019-programming-assignment/content/ refer to http://nju-ics.gitbooks.io/ics2020-programming-assignment/content/
To initialize, run To initialize, run
```bash ```bash
bash init.sh bash init.sh subproject-name
``` ```
See `init.sh` for more details.
The following subprojects/components are included. Some of them are not fully implemented. The following subprojects/components are included. Some of them are not fully implemented.
* [NEMU](https://github.com/NJU-ProjectN/nemu) * [NEMU](https://github.com/NJU-ProjectN/nemu)
* [Nexus-am](https://github.com/NJU-ProjectN/nexus-am) * [Abstract-Machine](https://github.com/NJU-ProjectN/abstract-machine)
* [Nanos-lite](https://github.com/NJU-ProjectN/nanos-lite) * [Nanos-lite](https://github.com/NJU-ProjectN/nanos-lite)
* [Navy-apps](https://github.com/NJU-ProjectN/navy-apps) * [Navy-apps](https://github.com/NJU-ProjectN/navy-apps)

65
init.sh
View File

@ -1,48 +1,69 @@
#!/bin/bash #!/bin/bash
version=ics2019 version=ics2020
log=""
function init() { function init() {
if [ -d $1 ]; then if [ -d $1 ]; then
echo "$1 is already initialized, exiting..." echo "$1 is already initialized, skipping..."
return return
fi fi
while [ ! -d $1 ]; do while [ ! -d $1 ]; do
git clone -b $version https://github.com/NJU-ProjectN/$1.git git clone -b $version https://github.com/NJU-ProjectN/$1.git
done done
log="$log$1 `cd $1 && git log --oneline --no-abbrev-commit -n1`"$'\n' log="$1 `cd $1 && git log --oneline --no-abbrev-commit -n1`"$'\n'
rm -rf $1/.git rm -rf $1/.git
git add -A $1
git commit -am "$1 $version initialized"$'\n\n'"$log"
if [ $2 ] ; then if [ $2 ] ; then
sed -i -e "/^export $2=.*/d" ~/.bashrc sed -i -e "/^export $2=.*/d" ~/.bashrc
echo "export $2=`readlink -e $1`" >> ~/.bashrc echo "export $2=`readlink -e $1`" >> ~/.bashrc
fi
}
read -r -p "Are you sure to initialize everything? [y/n] " input
case $input in
[yY])
init nemu NEMU_HOME
init nexus-am AM_HOME
init nanos-lite
init navy-apps NAVY_HOME
git add -A
git commit -am "$version initialized"$'\n\n'"$log"
echo "Initialization finishes!"
echo "By default this script will add environment variables into ~/.bashrc." echo "By default this script will add environment variables into ~/.bashrc."
echo "After that, please run 'source ~/.bashrc' to let these variables take effect." echo "After that, please run 'source ~/.bashrc' to let these variables take effect."
echo "If you use shell other than bash, please add these environment variables manually." echo "If you use shell other than bash, please add these environment variables manually."
;; fi
}
[nN]) function init_no_git() {
;; if [ -d $1 ]; then
echo "$1 is already initialized, skipping..."
return
fi
while [ ! -d $1 ]; do
git clone -b $version https://github.com/NJU-ProjectN/$1.git
done
log="$1 `cd $1 && git log --oneline --no-abbrev-commit -n1`"$'\n'
sed -i -e "/^\/$1/d" .gitignore
echo "/$1" >> .gitignore
git add -A .gitignore
git commit --no-verify --allow-empty -am "$1 $version initialized without tracing"$'\n\n'"$log"
}
case $1 in
nemu)
init nemu NEMU_HOME
;;
abstract-machine)
init abstract-machine AM_HOME
init_no_git fceux-am
;;
am-kernels)
init_no_git am-kernels
;;
nanos-lite)
init nanos-lite
;;
navy-apps)
init navy-apps NAVY_HOME
;;
*) *)
echo "Invalid input..." echo "Invalid input..."
exit
;; ;;
esac esac