August 4, 2015

Generating directory structure ASCII art on Windows

Don’t feel left out Windows users, you have a tree command too! Tree documentation is here. I found I couldn’t use it from Git bash, but I could use from the usual Windows command prompt.

Usually you will have to edit the output a bit to make it appropriate for a blog post. It may give too much or too little information. You can see how I used the output in my migrating imakewebsites.ca to Hexo post.

Here’s a raw sample of tree /f from an old Laravel project folder:

C:\WWW\WEEKEND-WARRIORS
│   .gitignore
│   .htaccess
│   changelog.md
│   index.php
│   license.txt
│   php.ini
│   Readme.md

├───application
│   │   composers.php
│   │   filters.php
│   │   routes.php
│   │
│   ├───config
│   │   │   .gitignore
│   │   │   application.php
│   │   │   auth.php
│   │   │   cache.php
│   │   │   container.php
│   │   │   database.php
│   │   │   error.php
│   │   │   session.php
│   │   │
│   │   └───adam
│   │           application.php
│   │           error.php
│   │           session.php
│   │
│   ├───controllers
│   │       home.php
│   │
│   ├───language
│   │   └───en
│   │           common.php
│   │           enter.php
│   │           entries.php
│   │           pagination.php
│   │           validation.php
│   │
│   ├───libraries
│   │   │   .gitignore
│   │   │   base_facebook.php
│   │   │   facebook.php
│   │   │   fb_ca_chain_bundle.crt
│   │   │   jsredirect.php
│   │   │   mail.php
│   │   │   maxuploadsize.php
│   │   │   qqfileuploader.php
│   │   │   votebutton.php
│   │   │
│   │   └───phpmailer
│   │           class.phpmailer.php
│   │           class.smtp.php
│   │
│   ├───models
│   │       .gitignore
│   │       contestperiod.php
│   │       contestperioddetail.php
│   │       entry.php
│   │       error.php
│   │       fb.php
│   │       report.php
│   │       user.php
│   │       vote.php
│   │
│   ├───routes
│   │       error.php
│   │       info.php
│   │       submit.php
│   │
│   ├───storage
│   │   └───database
│   │           .gitignore
│   │
│   └───views
│       │   contest-over-page.php
│       │   default.php
│       │   entries.php
│       │   entry.php
│       │   info-page.php
│       │   rules.php
│       │   tab-liked.php
│       │   tab-unliked.php
│       │   thanks.php
│       │   upload-form.php
│       │
│       ├───common
│       │       footer.php
│       │       footerjs.php
│       │       header.php
│       │       nav.php
│       │       share-video.php
│       │       sponsor-likes.php
│       │       sportselect.php
│       │       vimeo-player.php
│       │
│       ├───entries
│       │       entry-details.php
│       │       register-vote.php
│       │       share-button.php
│       │       vote-button.php
│       │       vote-js.php
│       │       voted-already.php
│       │
│       ├───error
│       │       404.php
│       │       500.php
│       │
│       ├───home
│       │       index.php
│       │
│       └───info
│               vote-report-row.php
│               vote-report.php

├───laravel
│   │   arr.php
│   │   asset.php
│   │   auth.php
│   │   autoloader.php
│   │   benchmark.php
│   │   blade.php
│   │   config.php
│   │   cookie.php
│   │   core.php
│   │   crypter.php
│   │   facades.php
│   │   file.php
│   │   form.php
│   │   hash.php
│   │   helpers.php
│   │   html.php
│   │   inflector.php
│   │   input.php
│   │   ioc.php
│   │   lang.php
│   │   laravel.php
│   │   memcached.php
│   │   messages.php
│   │   paginator.php
│   │   redirect.php
│   │   redis.php
│   │   request.php
│   │   response.php
│   │   section.php
│   │   str.php
│   │   uri.php
│   │   url.php
│   │   validator.php
│   │   view.php
│   │
│   ├───cache
│   │   │   manager.php
│   │   │
│   │   └───drivers
│   │           apc.php
│   │           driver.php
│   │           file.php
│   │           memcached.php
│   │           redis.php
│   │
│   ├───config
│   │       ascii.php
│   │       mimes.php
│   │
│   ├───database
│   │   │   connection.php
│   │   │   expression.php
│   │   │   manager.php
│   │   │   query.php
│   │   │
│   │   ├───connectors
│   │   │       connector.php
│   │   │       mysql.php
│   │   │       postgres.php
│   │   │       sqlite.php
│   │   │
│   │   ├───eloquent
│   │   │       hydrator.php
│   │   │       model.php
│   │   │
│   │   └───grammars
│   │           grammar.php
│   │           mysql.php
│   │
│   ├───routing
│   │       controller.php
│   │       filter.php
│   │       loader.php
│   │       route.php
│   │       router.php
│   │
│   └───session
│       │   payload.php
│       │
│       └───drivers
│               apc.php
│               cookie.php
│               database.php
│               driver.php
│               factory.php
│               file.php
│               memcached.php
│               redis.php
│               sweeper.php

└───public
    │   .htaccess
    │   index.php

    ├───css
    │       .gitignore
    │       fileuploader.css
    │       global.css
    │       tab.css
    │       thanks.css

    ├───img
    │       .gitignore
    │       header.png
    │       loader.gif
    │       prizes-collage.jpg
    │       sponsors-signs.jpg
    │       square-logo.png

    └───js
            .gitignore
            fileuploader.js
            global.js
            submit-entry.js
            vote.js