Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
e32c043
Updating the Pull Request templates to remove mention of adding Learn…
danielrazavi May 1, 2024
c818eff
Adding in Cohort three folder.
danielrazavi May 3, 2024
266a749
Update README.md
curtissfnorman May 3, 2024
f659b33
Merge pull request #88 from UofT-DSI/curtissfnorman-patch-1
danielrazavi May 3, 2024
77a2fad
Making live_code snake cased.
danielrazavi May 3, 2024
073992b
Update README.md
curtissfnorman May 7, 2024
47de83b
Update README.md
curtissfnorman May 7, 2024
5b31357
file system update
danielrazavi Jun 4, 2024
56c44a1
updated the readme.md
danielrazavi Jun 4, 2024
a9b2edc
Merge pull request #89 from UofT-DSI/fs-update
RohanAlexander Jun 4, 2024
a33f2de
Workflow added for automated comments.
danielrazavi Jul 8, 2024
3c4a973
Updating workflow
danielrazavi Jul 15, 2024
510fd77
ignore node_modules dependencies folder for slide generation
dtxe Aug 13, 2024
525d85b
Update materials for Cohort 4, improve slide generation workflow
dtxe Aug 13, 2024
b3c0e04
update asking questions help flow
dtxe Aug 13, 2024
888ba57
revert renaming markdown_slides => lessons, update generate_slides.sh…
dtxe Aug 13, 2024
4db351e
remove unused theme css file
dtxe Aug 13, 2024
8780180
revert help flowchart, small misc changes
dtxe Aug 13, 2024
73de78c
add man, cat, misc small changes
dtxe Aug 13, 2024
64cd9eb
Merge pull request #90 from dtxe/main
danielrazavi Aug 13, 2024
fdb3801
add autograder
dtxe Aug 14, 2024
605bca9
autograder fix paths bug
dtxe Aug 14, 2024
8c6a2c6
remove PR comment for now
dtxe Aug 14, 2024
d6dc5cf
autograder bugfix
dtxe Aug 14, 2024
d55d3ce
autograder fixes
dtxe Aug 14, 2024
2950db3
try posting comment from python autograder
dtxe Aug 14, 2024
f42b49b
add requests module
dtxe Aug 14, 2024
ca1a49d
autograder status should be ok if all tests ran successfully, regardl…
dtxe Aug 14, 2024
f101650
use absolute path for checks
dtxe Aug 14, 2024
550313a
updated working autograder for this script: look for touch command in…
dtxe Aug 15, 2024
0f518a8
autograder action: now runs on any branch beginning with assignment i…
dtxe Aug 15, 2024
5aef646
edge case bugfix q2
dtxe Aug 15, 2024
32136ce
move repo owner check earlier, so it doesn't appear in list of action…
dtxe Aug 15, 2024
6997d16
update assignment instructions for C4, update dsi repo pr action name
dtxe Aug 15, 2024
31d7481
rename instructions file for clarity
dtxe Aug 16, 2024
2ba62e6
Merge pull request #91 from dtxe/main
danielrazavi Aug 16, 2024
fdc20b8
update instructor details in readme, rename cohort_three to this_cohort
dtxe Aug 17, 2024
9b57327
instructions and readme updates
dtxe Aug 17, 2024
f86663e
add bash redirect
dtxe Aug 18, 2024
c49edf4
readme update LS
dtxe Aug 20, 2024
4ec2539
Merge pull request #92 from dtxe/main
danielrazavi Aug 20, 2024
443985f
clarify assignment, remove confusing instructions from homework, upda…
dtxe Aug 21, 2024
128fc1c
Merge pull request #94 from dtxe/main
dtxe Aug 21, 2024
2417e93
clean output files from folder before running assignment script
dtxe Aug 21, 2024
058c2c5
Merge pull request #97 from dtxe/main
danielrazavi Aug 21, 2024
d03a2a9
update assignment instructions, update autograder q8 check
dtxe Aug 22, 2024
85eb7eb
Merge pull request #110 from dtxe/main
danielrazavi Aug 22, 2024
5077c89
autograder q8 hotfix
dtxe Aug 22, 2024
08a4a45
Merge pull request #115 from dtxe/main
dtxe Aug 22, 2024
24d0048
add terminology explainer to shell slides
dtxe Nov 15, 2024
ad5b639
update instructor contact on readme
dtxe Nov 18, 2024
7e0a1e6
Merge pull request #148 from dtxe/readme
danielrazavi Nov 18, 2024
01efb7c
Merge pull request #147 from dtxe/slides_update
danielrazavi Nov 18, 2024
d1f5d15
add assignment rawdata
dtxe Nov 19, 2024
737e414
Merge pull request #149 from dtxe/add_rawdata
dtxe Nov 19, 2024
6d03bed
update assignment to combine git/shell with new autograder
dtxe Nov 19, 2024
e976b55
delete ip logs... WARNING UNTESTED!
dtxe Nov 15, 2024
ea20676
initialize README file with company name
dtxe Nov 15, 2024
cfb96e3
identify latest commit for merge check from branch name, instead of h…
dtxe Nov 19, 2024
bb87672
directly look for target sha in compare to main
dtxe Nov 19, 2024
e3436ed
Merge branch 'autograder'
dtxe Nov 19, 2024
a6f5efa
update URL for downloading autograder back to UofT-DSI
dtxe Nov 19, 2024
a98ea68
update assignment instructions
dtxe Nov 19, 2024
a6e9f00
update assignment due date
dtxe Nov 19, 2024
3276c3b
Merge pull request #146 from dtxe/autograder
danielrazavi Nov 19, 2024
41fca8a
complete assignement
Nov 22, 2024
5977a6b
switch to curl; wget not available in Git Bash
dtxe Nov 22, 2024
5ba63c3
Merge pull request #162 from dtxe/autograder
dtxe Nov 22, 2024
77a922a
Update assignment_instructions.md
moturuab Jan 6, 2025
b2e6074
Update README.md
moturuab Jan 6, 2025
288ec93
Merge pull request #214 from UofT-DSI/moturuab-patch-2
danielrazavi Jan 7, 2025
dab4a1f
Merge pull request #215 from UofT-DSI/moturuab-patch-3
danielrazavi Jan 7, 2025
f596429
Update README.md
moturuab Jan 8, 2025
173f1e1
Merge pull request #217 from UofT-DSI/moturuab-patch-3
danielrazavi Jan 8, 2025
4203d5d
Add image for GitHub Actions instructions in assignment documentation
danielrazavi Jan 17, 2025
fcdeed5
Un-ignore GitHub Actions image in .gitignore
danielrazavi Jan 17, 2025
acd1af3
Update README.md
moejennie Jan 29, 2025
444318b
Update README.md
moejennie Jan 29, 2025
b2c2c08
Update README.md
moejennie Jan 29, 2025
cb3581f
Remove reference to 'steps_to_ask_for_help.png' from README.md
danielrazavi Jan 30, 2025
80823b1
Merge branch 'main' of https://github.com/UofT-DSI/shell
dtxe Mar 20, 2025
cb6ede5
add additional practice homework problems
dtxe Mar 20, 2025
913ea1a
Homework html page
dtxe Mar 20, 2025
addbc21
update assignment instructions
dtxe Mar 20, 2025
42ceebc
Merge branch 'main' of https://github.com/dtxe/DSI_shell
dtxe Mar 20, 2025
9f93a7c
clarify prefilled template
dtxe Mar 20, 2025
d76414d
remove local css files, update problem rendering, add new problems
dtxe Mar 21, 2025
b464c20
add more prominent notice that homework is optional
dtxe Mar 21, 2025
4474719
bugfix: also highlight correct parsons selections in the right column
dtxe Mar 21, 2025
f0f80cd
move basic homework to web-based platform for clearer in-line solutions
dtxe Mar 21, 2025
6f734b1
make shell_basics easier to use in interactive format
dtxe Mar 23, 2025
3936ba4
improve solution formatting
dtxe Mar 23, 2025
065a514
clarify parsons problem drag source and targets
dtxe Mar 23, 2025
a80b024
revert left/right column order
dtxe Mar 23, 2025
4547472
Merge pull request #232 from dtxe/main
dtxe Mar 24, 2025
a6e20d1
add README for interactive problems
dtxe Mar 24, 2025
56aeab7
update assignment autograder: rename Q9 in output to Part 2 Q1
dtxe Mar 24, 2025
be11008
clarify homework solutions
dtxe Mar 25, 2025
f24ef77
make autograder Q8 less strict to accomodate other acceptable tactics
dtxe Mar 25, 2025
1efa829
fix question number formatting error
dtxe Mar 25, 2025
fd69c1b
print troubleshooting for which files are missing, make unzippping si…
dtxe Mar 25, 2025
b17c358
enable local debug mode for autograder that doesn't require all the g…
dtxe Mar 25, 2025
6bbf4ec
add back a check for Q8 on whether data/raw was listed instead of dat…
dtxe Mar 25, 2025
c26da8e
bugfixes for marking error state
dtxe Mar 25, 2025
4eb3a7a
bugfix: fix error when all are correct
dtxe Mar 25, 2025
b15f549
instead of commenting, approve or request changes
dtxe Mar 25, 2025
ab567af
bugfix: PR not working post instead of put
dtxe Mar 25, 2025
011bf01
3x autograder speedup by using uv run
dtxe Mar 25, 2025
d0a6986
update readme for C6 teaching team
dtxe Mar 26, 2025
fb42909
rename homework to practice problems, and update README
dtxe Mar 26, 2025
31d6680
remove mention of homework
dtxe Mar 26, 2025
7208d73
complete assignment grading instructions
dtxe Mar 26, 2025
37e2696
Merge pull request #234 from dtxe/main
RohanAlexander Mar 26, 2025
284ad41
add bash cheatsheet
dtxe Mar 26, 2025
b9ca76d
update readme: formatting
dtxe Mar 26, 2025
15501b2
autoclose assignment PRs
dtxe Mar 27, 2025
2aa25f1
rename workflows for clarity, don't run autograder on uoft-dsi repo. …
dtxe Mar 27, 2025
8b2f2d6
autograder: tweak question numbering for Part 2 clarity, fix 1.3
dtxe Mar 31, 2025
2cc53ee
Update 04_this_cohort/additional_resources/bash_commands_cheatsheet.md
dtxe Apr 1, 2025
81bfcda
Merge pull request #235 from dtxe/main
RohanAlexander Apr 1, 2025
d28b064
Merge branch 'main' of https://github.com/dtxe/DSI_shell
dtxe Apr 1, 2025
00f7882
Merge branch 'main' of https://github.com/UofT-DSI/shell
dtxe Apr 1, 2025
5c5ce34
move bash cheatsheet to main materials directory
dtxe Apr 1, 2025
17e355b
Merge pull request #236 from dtxe/main
RohanAlexander Apr 1, 2025
b8cdc87
Initial assignment submission for review
Apr 10, 2025
8532d81
solve conflict
monzchan Apr 10, 2025
ee4e935
Completed My Assignment for SHELL module
Apr 11, 2025
e32fb1a
Deleted github_actions.png as part of cleanup
Apr 11, 2025
41b8beb
Merge branch 'coworker-changes' of https://github.com/UofT-DSI/shell
Apr 11, 2025
187237c
reverse assignment.sh
monzchan Apr 11, 2025
a4d4549
conflict
monzchan Apr 11, 2025
6679db6
'test'
monzchan Apr 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,5 @@

## A reference to a related issue in your repository (if applicable)

## @mentions of the person or team responsible for reviewing proposed changes (At least 2 people)
-

## Checklist
- [ ] I can confirm that my changes are working as intended
36 changes: 36 additions & 0 deletions .github/workflows/autograder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Assignment autograder
on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened]
jobs:
autograder:
name: Assignment autograder
if: startsWith(github.head_ref, 'assignment') && github.repository_owner != 'UofT-DSI'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- name: Setup working directory for script
run: |
UUID=$(uuidgen)
echo "UUID=$UUID" >> $GITHUB_ENV
mkdir /tmp/$UUID
cp $GITHUB_WORKSPACE/02_activities/assignments/assignment.sh /tmp/$UUID
- name: Run assignment script
run: |
bash -c "bash assignment.sh 2>&1 | tee /tmp/${{ env.UUID }}_output.txt"
working-directory: /tmp/${{ env.UUID }}
- name: Grade responses
id: grade
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_OWNER: ${{ github.repository_owner }}
REPO_NAME: ${{ github.event.repository.name }}
PR_NUMBER: ${{ github.event.pull_request.number }}
REPO_BRANCH: ${{ github.event.pull_request.head.ref }}
WORKING_DIR: /tmp/${{ env.UUID }}
run: |
wget -O /tmp/autograder.py https://github.com/UofT-DSI/shell/raw/refs/heads/main/03_instructional_team/autograder/autograder.py
uv run --python 3.12 --with pandas,tabulate,requests /tmp/autograder.py
48 changes: 48 additions & 0 deletions .github/workflows/automatic_pr_comment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: UofT-DSI Main Repository PR Workflow

on:
pull_request_target:
types: [opened, synchronize]

jobs:
handle-pr:
if: github.repository_owner == 'UofT-DSI'
runs-on: ubuntu-latest
steps:
- name: Handle PR based on source branch
uses: actions/github-script@v6
with:
script: |
const pr = context.payload.pull_request;
const branchName = pr.head.ref;
const issue_number = pr.number;
const repo = context.repo;

if (branchName.startsWith('assignment')) {
const commentBody = `This pull request was made to the wrong repository. Please open it in your own fork instead. Refer to the [Assignment Submission Guide](https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md) for detailed instructions.`;

// Comment on the PR
await github.rest.issues.createComment({
owner: repo.owner,
repo: repo.repo,
issue_number: issue_number,
body: commentBody
});

// Close the PR
await github.rest.pulls.update({
owner: repo.owner,
repo: repo.repo,
pull_number: issue_number,
state: "closed"
});
} else {
const commentBody = `Thanks for your contribution! 🎉\n\nPlease remember to tag or request a review from the DSI team. Give us up to 72 hours to review your pull request. We appreciate your patience and efforts.`;

await github.rest.issues.createComment({
owner: repo.owner,
repo: repo.repo,
issue_number: issue_number,
body: commentBody
});
}
42 changes: 42 additions & 0 deletions .github/workflows/deploy_github_pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './03_instructional_team/githubpages'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
19 changes: 17 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
.DS_Store
.vscode/
./04_instructional_team/lessons/pdf/*
./04_instructional_team/lessons/html/*
03_instructional_team/lessons/pdf/*
03_instructional_team/lessons/html/*

# local node modules
node_modules/
package-lock.json
package.json

### Running the assignment script unzips a large number of files into the tree
# Ignore all files in shell/02_activities/assignments/
02_activities/assignments/*

# Un-ignore the specific files
!02_activities/assignments/assignment.sh
!02_activities/assignments/github_actions.png
!02_activities/assignments/assignment_instructions.md

108 changes: 108 additions & 0 deletions 01_materials/bash_quick_reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Bash Commands Reference

## 📋 Commands Overview

```bash
$ echo Rachael
Rachael

$ conda activate dsi_participant
(dsi_participant)

$ date
Tue, Nov 19, 2024 6:28:10PM

$ asdkfjhgoipwhr
Command not found

$ man ls
# Opens the manual for `ls`
# To exit, press 'q'

$ help
# Lists available shell commands
```

---

## 📁 File & Directory Navigation

| Command | Description |
|------------------------|------------------------------------------------------------|
| `pwd` | Show current working directory |
| `ls` | List folders & files in the working directory |
| `cd` | Move to home directory |
| `cd Desktop` | Move into Desktop directory |
| `cd <path>` | Move into a specific path |
| `cd ..` | Move one level up (parent directory) |

---

## 🛠 File & Directory Management

| Command | Description |
|-------------------------------------|-----------------------------------------------------|
| `mkdir <dir_name>` | Make new directories |
| `touch <file_name>` | Create a file |
| `rm <directory_name>` | Remove a directory |
| `rm <file_name>` | Remove a file |
| `cp <source> <destination>` | Copy file from source to destination |
| `cp <dir_source>/* <dir_dest>` | Copy all files from source dir to destination dir |
| `mv <file1> <file2>` | Rename/move file1 to file2 |
| `cat <file_name>` | Display content of the file |
| `echo "text" > file.txt` | Replace content in file with text |
| `echo "text" >> file.txt` | Append text to file |

---

## ✏️ Editing Files

| Command | Description |
|--------------------|------------------------------------|
| `nano <file_name>` | Open file in nano text editor |
| `code <file_name>` | Open file in VS Code |

---

## 🧰 Useful Options

| Option | Description |
|--------|-----------------------------------------------------------|
| `-i` | Prompt before overwriting an existing file |
| `-r` | Recursively copy directories and their contents |
| `-v` | Show informative messages during operations |
| `-f` | Force action (overrides `-i` if both are used together) |

---

## 🔧 Hash-bang (Shebang)

Place this at the top of every Bash script to indicate which shell to use:

```bash
#!/bin/bash
```

---

## ⚙️ Optional extras for customizing bash
#### Append to ~/.bash_profile for extra spacing between previous commands and the subsequent shell prompt**
```
export PS1="\n\n$PS1"
```

#### Append to ~/.bash_profile to track live command history
```
export PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
alias showhistory="clear; tail -n0 -F ~/.bash_history | nl"
```
* clear: clear the terminal
* tail: command for displaying the last few lines of a file
* -n0: display no lines currently in the file
* -F: watch the file for changes and display any new lines
* ~/.bash_history: command history file for bash
* | nl: line numbering

#### To display live updated command history, run this in a separate window:
showhistory

Binary file added 01_materials/slides/optional_unix_slides.pdf
Binary file not shown.
Binary file added 01_materials/slides/unix_slides.pdf
Binary file not shown.
Binary file removed 01_slides/optional_unix_slides.pdf
Binary file not shown.
Binary file removed 01_slides/unix_slides.pdf
Binary file not shown.
55 changes: 55 additions & 0 deletions 02_activities/assignments/assignment.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash
set -x

############################################
# DSI CONSULTING INC. Project setup script #
############################################
# This script creates standard analysis and output directories
# for a new project. It also creates a README file with the
# project name and a brief description of the project.
# Then it unzips the raw data provided by the client.

mkdir analysis output
touch 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
mkdir data

# 2. Move the ./rawdata directory to ./data/raw
mv ./rawdata ./data/raw

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

# 4. In ./data/processed, create the following directories: server_logs, user_logs, and event_logs
mkdir -p data/processed/{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

cp data/raw/*server*.log data/processed/server_logs/

# 6. Repeat the above step for user logs and event logs
cp data/raw/*user*.log data/processed/server_logs/
cp data/raw/*event*.log data/processed/server_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 data/raw/*ipaddr*
rm data/processed/user_logs/*ipaddr*

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


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

echo "Project setup is complete!"

#amended
Loading