Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions 02_activities/assignments/assignment.sh

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have the right idea on what commands to use and how they work, the only issue is that the auto grader that we have built doesn't have the same file system as your computer, so it doesn't know some of these folder structures you're mentioning. The code works on your computer, but just your computer. You need to use relative paths. Once you do that, I'm certain, no issues should persist.

Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#1
#!/bin/bash
set -x

Expand All @@ -13,37 +14,60 @@ if [ -d newproject ]; then
echo "Directory 'newproject' already exists. Please remove it before running this script."
exit 1
fi
# download client data
curl -Lo rawdata.zip https://github.com/UofT-DSI/shell/raw/refs/heads/main/02_activities/assignments/rawdata.zip
unzip -q rawdata.zip

mkdir newproject
cd newproject

mkdir analysis output
touch README.md
echo "# Project Name: DSI Consulting Inc." > README.md
touch analysis/main.py

# download client data
curl -Lo rawdata.zip https://github.com/UofT-DSI/shell/raw/refs/heads/main/02_activities/assignments/rawdata.zip
unzip -q rawdata.zip

###########################################
# Complete assignment here

# 1. Create a directory named data
cd newproject
mkdir data

# 2. Move the ./rawdata directory to ./data/raw
cd data
mkdir raw
cd ../../
mv ./rawdata/* newproject/data/raw/
mv ./rawdata/ newproject/data/raw/

# 3. List the contents of the ./data/raw directory
ls newproject/data/raw

# 4. In ./data/processed, create the following directories: server_logs, user_logs, and event_logs
mkdir newproject/data/processed
cd newproject/data/processed
mkdir server_logs user_logs event_logs

# 5. Copy all server log files (files with "server" in the name AND a .log extension) from ./data/raw to ./data/processed/server_logs
cd ../raw
cp *server*.log ../processed/server_logs

# 6. Repeat the above step for user logs and event logs
cp *user*.log ../processed/user_logs
cp *event*.log ../processed/event_logs

# 7. For user privacy, remove all files containing IP addresses (files with "ipaddr" in the filename) from ./data/raw and ./data/processed/user_logs
rm *ipaddr*
cd ../processed/user_logs
rm *ipaddr*

# 8. Create a file named ./data/inventory.txt that lists all the files in the subfolders of ./data/processed
cd ../../
touch inventory.txt
find processed -type f > inventory.txt


###########################################

echo "Project setup is complete!"
echo "Project setup is complete!"