echo "Using conditional statement to create a project directory and project"

# Variable section
export project_dir=$HOME/vscode  # change vscode to different name to test git clone
export project=$project_dir/firstrepo  # change APCSP to name of project from git clone
export project_repo="https://github.com/paravsalaniwal/firstrepo.git"  # change to project of choice

cd ~    # start in home directory

# Conditional block to make a project directory
if [ ! -d $project_dir ]
then 
    echo "Directory $project_dir does not exists... makinng directory $project_dir"
    mkdir -p $project_dir
fi
echo "Directory $project_dir exists." 

# Conditional block to git clone a project from project_repo
if [ ! -d $project ]
then
    echo "Directory $project does not exists... cloning $project_repo"
    cd $project_dir
    git clone $project_repo
    cd ~
fi
echo "Directory $project exists."
Using conditional statement to create a project directory and project
Directory /Users/parav/vscode exists.
Directory /Users/parav/vscode/firstrepo exists.

Look inside Fastpages/Github page project

All computers contain files and directories. The clone brought more files from cloud to your machine. Using the bash shell you will see some commands that show and interact with files and directories.

  • "ls" lists computer files in Unix and Unix-like operating systems
  • "cd" offers way to navigate and change working directory
  • "pwd" print working directory
  • "echo" used to display line of text/string that are passed as an argument
echo "Navigate to project, then navigate to area where files were cloned"
cd $project
pwd

echo ""
echo "list top level or root of files with project pulled from github"
ls

echo ""
echo "list again with hidden files pulled from github"
ls -a   # hidden files flag, many shell commands have flags

echo ""
echo "list all files in long format"
ls -al   # all files and long listing
Navigate to project, then navigate to area where files were cloned
/Users/parav/vscode/firstrepo

list top level or root of files with project pulled from github
2022-05-15-07-21-16.png	_action_files		_posts
2022-05-15-07-24-25.png	_config.yml		_sass
2022-05-15-07-25-15.png	_fastpages_docs		_word
Gemfile			_includes		assets
LICENSE			_layouts		docker-compose.yml
Makefile		_notebooks		images
README.md		_pages			index.html
Untitled.ipynb		_plugins

list again with hidden files pulled from github
.			Gemfile			_pages
..			LICENSE			_plugins
.devcontainer.json	Makefile		_posts
.git			README.md		_sass
.gitattributes		Untitled.ipynb		_word
.github			_action_files		assets
.gitignore		_config.yml		docker-compose.yml
.ipynb_checkpoints	_fastpages_docs		images
2022-05-15-07-21-16.png	_includes		index.html
2022-05-15-07-24-25.png	_layouts
2022-05-15-07-25-15.png	_notebooks

list all files in long format
total 872
drwxr-xr-x  31 parav  staff     992 Aug 24 13:46 .
drwxr-xr-x   4 parav  staff     128 Aug 23 13:24 ..
-rw-r--r--   1 parav  staff     420 Aug 21 15:49 .devcontainer.json
drwxr-xr-x  15 parav  staff     480 Aug 28 20:58 .git
-rw-r--r--   1 parav  staff      84 Aug 21 15:49 .gitattributes
drwxr-xr-x   4 parav  staff     128 Aug 21 15:49 .github
-rw-r--r--   1 parav  staff     161 Aug 21 15:49 .gitignore
drwxr-xr-x   3 parav  staff      96 Aug 27 14:19 .ipynb_checkpoints
-rw-r--r--   1 parav  staff  207007 Aug 21 15:49 2022-05-15-07-21-16.png
-rw-r--r--   1 parav  staff   90979 Aug 21 15:49 2022-05-15-07-24-25.png
-rw-r--r--   1 parav  staff   81691 Aug 21 15:49 2022-05-15-07-25-15.png
-rwxr-xr-x   1 parav  staff    1304 Aug 21 15:49 Gemfile
-rw-r--r--   1 parav  staff   11351 Aug 21 15:49 LICENSE
-rwxr-xr-x   1 parav  staff    1422 Aug 21 15:49 Makefile
-rwxr-xr-x   1 parav  staff    3623 Aug 21 15:49 README.md
-rw-r--r--   1 parav  staff    8224 Aug 24 12:56 Untitled.ipynb
drwxr-xr-x  18 parav  staff     576 Aug 21 15:49 _action_files
-rw-r--r--   1 parav  staff    3687 Aug 21 15:49 _config.yml
drwxr-xr-x  24 parav  staff     768 Aug 21 15:49 _fastpages_docs
drwxr-xr-x  27 parav  staff     864 Aug 21 15:49 _includes
drwxr-xr-x   6 parav  staff     192 Aug 21 15:49 _layouts
drwxr-xr-x  11 parav  staff     352 Aug 28 20:24 _notebooks
drwxr-xr-x   8 parav  staff     256 Aug 27 14:38 _pages
drwxr-xr-x   4 parav  staff     128 Aug 21 15:49 _plugins
drwxr-xr-x   6 parav  staff     192 Aug 27 14:47 _posts
drwxr-xr-x   3 parav  staff      96 Aug 21 15:49 _sass
drwxr-xr-x   6 parav  staff     192 Aug 28 20:15 _word
drwxr-xr-x   4 parav  staff     128 Aug 21 15:49 assets
-rwxr-xr-x   1 parav  staff    1136 Aug 21 15:49 docker-compose.yml
drwxr-xr-x   7 parav  staff     224 Aug 21 15:49 images
-rw-r--r--   1 parav  staff     621 Aug 21 15:49 index.html
echo "Look for posts"
export posts=$project/_posts  # _posts inside project
cd $posts  # this should exist per fastpages
pwd  # present working directory
ls -l  # list posts
Look for posts
/Users/parav/vscode/firstrepo/_posts
total 24
-rwxr-xr-x  1 parav  staff  2520 Aug 23 13:51 2020-01-14-test-markdown-post.md
-rw-r--r--  1 parav  staff   213 Aug 22 13:04 2022-8-21-myfirstpost.md
-rw-r--r--  1 parav  staff   720 Aug 21 15:49 README.md
echo "Look for notebooks"
export notebooks=$project/_notebooks  # _notebooks is inside project
cd $notebooks   # this should exist per fastpages
pwd  # present working directory
ls -l  # list notebooks
Look for notebooks
/Users/parav/vscode/firstrepo/_notebooks
total 6272
-rw-r--r--  1 parav  staff  3162468 Aug 22 13:04 2020-02-20-test.ipynb
-rw-r--r--  1 parav  staff     5152 Aug 28 20:17 2022-08-24-quiz.ipynb
-rw-r--r--  1 parav  staff    22728 Aug 28 21:18 2022-08-28-bashchecks.ipynb
-rw-r--r--  1 parav  staff     1050 Aug 22 13:04 2022-8-21-myfirstnb.ipynb
-rw-r--r--  1 parav  staff      771 Aug 21 15:49 README.md
drwxr-xr-x  4 parav  staff      128 Aug 21 15:49 ghtop_images
drwxr-xr-x  3 parav  staff       96 Aug 27 20:43 my_icons
-rw-r--r--  1 parav  staff     1904 Aug 24 14:24 paravsquiz.py
echo "Look for images in notebooks, print working directory, list files"
cd $notebooks/images  # this should exist per fastpages
pwd
ls -l
Look for images in notebooks, print working directory, list files
bash: cd: /Users/parav/vscode/firstrepo/_notebooks/images: No such file or directory
/Users/parav/vscode/firstrepo/_notebooks
total 6272
-rw-r--r--  1 parav  staff  3162468 Aug 22 13:04 2020-02-20-test.ipynb
-rw-r--r--  1 parav  staff     5152 Aug 28 20:17 2022-08-24-quiz.ipynb
-rw-r--r--  1 parav  staff    22728 Aug 28 21:18 2022-08-28-bashchecks.ipynb
-rw-r--r--  1 parav  staff     1050 Aug 22 13:04 2022-8-21-myfirstnb.ipynb
-rw-r--r--  1 parav  staff      771 Aug 21 15:49 README.md
drwxr-xr-x  4 parav  staff      128 Aug 21 15:49 ghtop_images
drwxr-xr-x  3 parav  staff       96 Aug 27 20:43 my_icons
-rw-r--r--  1 parav  staff     1904 Aug 24 14:24 paravsquiz.py

Look inside a Markdown File

"cat" reads data from the file and gives its content as output

echo "Navigate to project, then navigate to area wwhere files were cloned"

cd $project
echo "show the contents of README.md"
echo ""

cat README.md  # show contents of file, in this case markdown
echo ""
echo "end of README.md"
Navigate to project, then navigate to area wwhere files were cloned
show the contents of README.md

[//]: # (This template replaces README.md when someone creates a new repo with the fastpages template.)

![](https://github.com/paravsalaniwal/firstrepo/workflows/CI/badge.svg) 
![](https://github.com/paravsalaniwal/firstrepo/workflows/GH-Pages%20Status/badge.svg) 
[![](https://img.shields.io/static/v1?label=fastai&message=fastpages&color=57aeac&labelColor=black&style=flat&logo=data:image/png;base64,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)](https://github.com/fastai/fastpages)

https://paravsalaniwal.github.io/firstrepo/

# My Blog


_powered by [fastpages](https://github.com/fastai/fastpages)_


## What To Do Next?

Great!  You have setup your repo.  Now its time to start writing content.  Some helpful links:

- [Writing Blogs With Jupyter](https://github.com/fastai/fastpages#writing-blog-posts-with-jupyter)

- [Writing Blogs With Markdown](https://github.com/fastai/fastpages#writing-blog-posts-with-markdown)

- [Writing Blog Posts With Word](https://github.com/fastai/fastpages#writing-blog-posts-with-microsoft-word)

- [(Optional) Preview Your Blog Locally](_fastpages_docs/DEVELOPMENT.md)

Note: you may want to remove example blog posts from the `_posts`,  `_notebooks` or `_word` folders (but leave them empty, don't delete these folders) if you don't want these blog posts to appear on your site.

Please use the [nbdev & blogging channel](https://forums.fast.ai/c/fastai-users/nbdev/48) in the fastai forums for any questions or feature requests.

end of README.md

Env, Git and GitHub

Env(ironment) is used to capture things like path to Code or Home directory. Git and GitHub is NOT Only used to exchange code between individuals, it is often used to exchange code through servers, in our case deployment for Website. All tools we use have a behind the scenes hav relationship with the system they run on (MacOS, Windows, Linus) or a relationship with servers which they are connected to (ie GitHub). There is an "env" command in bash. There are environment files and setting files (.git/config) for Git. They both use a key/value concept.

  • "env" show setting for your shell
  • "git clone" sets up a director of files
  • "cd $project" allows user to move inside that directory of files
  • ".git" is a hidden directory that is used by git to establish relationship between machine and the git server on GitHub.
echo "Show the shell environment variables, key on left of equal value on right"
echo ""

env
Show the shell environment variables, key on left of equal value on right

SHELL=/bin/zsh
TMPDIR=/var/folders/cw/l3n5900n2bl_cmrpnv4h2r500000gp/T/
LIBRARY_PATH=/usr/local/lib
CONDA_SHLVL=1
PYTHONUNBUFFERED=1
CONDA_PROMPT_MODIFIER=(base) 
SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
OLDPWD=/Users/parav/vscode/firstrepo/_notebooks
ORIGINAL_XDG_CURRENT_DESKTOP=undefined
MallocNanoZone=0
PYDEVD_USE_FRAME_EVAL=NO
PYTHONIOENCODING=utf-8
USER=parav
COMMAND_MODE=unix2003
CONDA_EXE=/Users/parav/opt/anaconda3/bin/conda
CPATH=/usr/local/include
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.3t8ROEfjIO/Listeners
__CF_USER_TEXT_ENCODING=0x1F6:0x0:0x0
JPY_PARENT_PID=6643
PAGER=cat
VSCODE_AMD_ENTRYPOINT=vs/workbench/api/node/extensionHostProcess
ELECTRON_RUN_AS_NODE=1
JUPYTER_PATH=/Users/parav/.vscode/extensions/ms-toolsai.jupyter-2022.7.1102252217/temp/jupyter
_CE_CONDA=
PATH=/Users/parav/opt/anaconda3/bin:/Users/parav/opt/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
CONDA_PREFIX=/Users/parav/opt/anaconda3
__CFBundleIdentifier=com.microsoft.VSCode
PWD=/Users/parav/vscode/firstrepo
notebooks=/Users/parav/vscode/firstrepo/_notebooks
VSCODE_HANDLES_UNCAUGHT_ERRORS=true
project_repo=https://github.com/paravsalaniwal/firstrepo.git
project=/Users/parav/vscode/firstrepo
project_dir=/Users/parav/vscode
XPC_FLAGS=0x0
PS1=[PEXP\[\]ECT_PROMPT>
_CE_M=
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/parav
APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL=1
VSCODE_NLS_CONFIG={"locale":"en-us","availableLanguages":{},"_languagePackSupport":true}
PYTHONPATH=/Users/parav/.vscode/extensions/ms-toolsai.jupyter-2022.7.1102252217/pythonFiles:/Users/parav/.vscode/extensions/ms-toolsai.jupyter-2022.7.1102252217/pythonFiles/lib/python
CONDA_PYTHON_EXE=/Users/parav/opt/anaconda3/bin/python
LOGNAME=parav
LC_CTYPE=UTF-8
VSCODE_IPC_HOOK=/Users/parav/Library/Application Support/Code/1.70.2-main.sock
VSCODE_CODE_CACHE_PATH=/Users/parav/Library/Application Support/Code/CachedData/e4503b30fc78200f846c62cf8091b76ff5547662
CONDA_DEFAULT_ENV=base
VSCODE_PID=6556
posts=/Users/parav/vscode/firstrepo/_posts
VSCODE_CWD=/
_=/usr/bin/env
cd $project

echo ""
echo "show the secrets of .git"
cd .git
ls -l

echo ""
echo "look at config file"
cat config
show the secrets of .git
total 88
-rw-r--r--    1 parav  staff     35 Aug 28 20:58 COMMIT_EDITMSG
-rw-r--r--    1 parav  staff    602 Aug 28 20:58 FETCH_HEAD
-rw-r--r--    1 parav  staff     23 Aug 21 15:49 HEAD
-rw-r--r--    1 parav  staff     41 Aug 26 14:50 ORIG_HEAD
-rw-r--r--    1 parav  staff    352 Aug 21 18:52 config
-rw-r--r--    1 parav  staff     73 Aug 21 15:49 description
drwxr-xr-x   15 parav  staff    480 Aug 21 15:49 hooks
-rw-r--r--    1 parav  staff  12925 Aug 28 20:58 index
drwxr-xr-x    3 parav  staff     96 Aug 21 15:49 info
drwxr-xr-x    4 parav  staff    128 Aug 21 15:49 logs
drwxr-xr-x  251 parav  staff   8032 Aug 28 20:58 objects
-rw-r--r--    1 parav  staff    411 Aug 21 15:49 packed-refs
drwxr-xr-x    5 parav  staff    160 Aug 21 15:49 refs

look at config file
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
[remote "origin"]
	url = https://github.com/paravsalaniwal/firstrepo.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[lfs]
	repositoryformatversion = 0

Hacks

Go back to some of the deployment procedures and think about some thing you could verify through Bash notebook.

  • Is there anything we use to verify tools we install? Think about versions.
  • Is there anything we could verify with Anaconda?
  • How would you update a repository?
  • Really cool would be automating a procedure from installation.

Answer to the Hacks

  • We can use the command conda --list to check the tools we have installed.
  • To verify the tool versions we have installed, we can run the command bash --version or jupyter --version
  • The commands to update a repository would be git stage changes, git commit, and git push