Code Monkey home page Code Monkey logo

node-shell-workshop's Introduction

Author: @bradreeder

Maintainer: @bradreeder

Node Shell Workshop

A tutorial that takes you through the basics of doing shell scripting with node.js. It culminates in a project using the lessons learned to build a small command-line tool.

See LESSON1.md for the first lesson, LESSON2.md for the second, and PROJECT.md for the final project.

Resources

Some useful resources for the project:

node-shell-workshop's People

Contributors

astroash avatar bradreeder avatar eliasmalik avatar joeylouise avatar jsms90 avatar mrm7moud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

node-shell-workshop's Issues

Could we use a .txt file instead of .scm

Not sure why we're using a .scm file extension, extra unknowns tend to distract from the learning objectives.
Might be clearer to use a file extension that people are familiar with.

My suggestion would be to change the file exension to .txt.

Folder with solutions

It would be good to have solutions somewhere for all the tasks on this workshop (and a finished version of the project as well).

I can add a folder with solutions for most of the tasks except for the piping task as I can't figure out how to do it...

Shall I add a folder with example solutions and can anyone help with a solution for the piping task and the project? (@bradreeder @eliasCodes @jsms90 )

Add public/ in paths to index.html and example.js

In examples, it is often written e.g.

cat index.html > example.js

which doesn't work as written, as these files are within the public folder. Not a big deal but just trying to make it a bit clearer, so suggesting changing to e.g.

cat public/index.html > public/example.js

Add tests

To make this more like the nodeschool workshops this is inspired by, it might be an idea to add tests that verify if a student's solution is correct.

Terminal

Make this into a tutorial that runs on the terminal screen like nodeschool tutorials.

remove historic references from LESSON2.md

If you want to see a detailed break-down on this at any point go into my notes on the white-board session under week5 of your notes repo. It's not necessary to go into that much depth to do these exercises, the syntax you need is provided, just in case it helps clarify any questions from yesterday.

This is a reference to the time in FAC9 when I originally delivered this workshop. I should go through the files to modify any historic references so as to not confuse new users using this workshop.

update file paths in lesson-2.md

Go into the public folder and try this:

node path_to_your_cat.js public/index.html > public/example.js

There are a few examples like this where the file paths aren't correct. (If you're in the public folder you only need to write out index.html or example.js.)

Ideas for exercises

Formerly in the notes that were at the end of lesson1.md #5

**To be continued: more options, recursives, wildcards, redirections, pipes, publishing your new found wizardry on npm, storing your environment variables using shell commands...**

redirections & pipes are covered in lesson2.md and I believe publishing modules to npm is in the project.md.

update hint for lesson-1 grep task

Hint: try doing this just with fs first and see what happens. You're going to need a specific core module in order to access the whole line of a file as you're reading it.

I remember when I delivered this that someone solved the task without using the module referenced here. I will update this hint to the point to the existence of this module rather than imply it's necessary.

"test-runner" is inaccurate

In the project, the thing they are being asked to build is described as a test-runner. It's actually a TAP output formatter. tape is still the thing actually running the tests.

I would suggest that we replace references to 'test-runner' with "TAP output formatter", or alternatively "test output formatter" if you don't feel like explaining what TAP is (which would be fair enough).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.