All Projects → RaisinTen → fs-make

RaisinTen / fs-make

Licence: MIT license
Make a folder structure from its description

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects
Makefile
30231 projects
Yacc
648 projects
Lex
420 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to fs-make

project-management
A basic CLI for regularly updating your project's status
Stars: ✭ 90 (+542.86%)
Mutual labels:  productivity, project
Proji
A powerful cross-platform CLI project templating tool.
Stars: ✭ 156 (+1014.29%)
Mutual labels:  productivity, project
sauron
👀 Reminds the user to take regular breaks and helps prevent eye strain
Stars: ✭ 24 (+71.43%)
Mutual labels:  productivity
TinyCompiler
c compiler based on flex(lex), bison(yacc) and LLVM, supports LLVM IR and obj code generation. 基于flex,bison以及LLVM,使用c++11实现的类C语法编译器, 支持生成中间代码及可执行文件.
Stars: ✭ 162 (+1057.14%)
Mutual labels:  flex
github-project-todo-md
A Tool that sync between GitHub Project Board <-> Todo Markdown text.
Stars: ✭ 17 (+21.43%)
Mutual labels:  project
commitlog
Generate Changelogs from Commits (CLI)
Stars: ✭ 63 (+350%)
Mutual labels:  productivity
project-defude
Refocus an image just by clicking on it with no additional data
Stars: ✭ 69 (+392.86%)
Mutual labels:  project
assign-one-project-github-action
Automatically add an issue or pull request to specific GitHub Project(s) when you create and/or label them.
Stars: ✭ 140 (+900%)
Mutual labels:  project
hfos-legacy
Hackerfleet Operating System
Stars: ✭ 28 (+100%)
Mutual labels:  productivity
ATtiny13-TinySolder
T12 Quick Heating Soldering Station
Stars: ✭ 45 (+221.43%)
Mutual labels:  project
IoT
A repository dedicated to IoT(internet of things ) and python scripts
Stars: ✭ 24 (+71.43%)
Mutual labels:  project
wrangler
Wrangler Transform: A DMD system for transforming Big Data
Stars: ✭ 63 (+350%)
Mutual labels:  project
tidyweek
Repo dedicated to #tidyweek & Mentorship pilot
Stars: ✭ 25 (+78.57%)
Mutual labels:  project
sqlfun
Modern SQL parser using Bison (Yacc) and Flex
Stars: ✭ 63 (+350%)
Mutual labels:  flex
ReSharperHelpers
Custom plugin to extend R# functionality.
Stars: ✭ 41 (+192.86%)
Mutual labels:  productivity
schsrch
Simple and intuitive CIE search engine
Stars: ✭ 35 (+150%)
Mutual labels:  productivity
frontend
Frontend PWA website for cmpct.io - Built with VueJS and Nuxt
Stars: ✭ 21 (+50%)
Mutual labels:  productivity
moodle-downloader
A 4.9 stars rated chrome extension for batch downloading Moodle resources 💾
Stars: ✭ 68 (+385.71%)
Mutual labels:  productivity
mcnp
📊复杂网络建模课程设计. The project of modeling of complex networks course.
Stars: ✭ 69 (+392.86%)
Mutual labels:  project
NodeServer
Compare node.js servers
Stars: ✭ 35 (+150%)
Mutual labels:  project

fs-make logo

CI LICENSE MIT


Make your folder structure from its description with fs-make (folder structure make)!

example

Syntax

Note that this is not JSON but a similar data-format. Here's what the Abstract Syntax Tree looks like.

  • Files are represented by the file name placed between a pair of double quotes ("):

    "file-name"
    
  • Directories are represented by the directory name in double quotes (") followed by a colon (:) and a comma-separated (,) set of file and directory representations between a pair of braces ({}):

    "src": {
        "main.cpp",
        "CMakeLists.txt",
        "build": {
            "Makefile",
            "boink"
        },
        "includes": {
        }
    }
    

    When a directory contains only a single entity, the braces aren't necessary:

    "i have one file": "one file"
    
  • The input file content can be like any of these:

    • a file
      "just a file"
      
    • a directory
      "lonely directory": {
          "stuff"
      }
      
    • an unnamed set of entities like this:
      {}
      

Here's what the Abstract Syntax Tree looks like:

grammar graph

Getting Started

Dependencies

The dependencies are:

  • gcc
  • g++
  • flex
  • bison
  • tree

No manual installation is required. The configure script installs the dependencies using a package manager. If you are using:

macOS

Make sure that you have Homebrew installed.

Windows

Install the Windows Subsystem for Linux or Cygwin and make sure that you have APT installed.

Linux

Make sure that you have APT installed.

Building

Clone the repo with:

$ git clone https://github.com/RaisinTen/fs-make.git
$ cd fs-make

Update your package lists and build fs-make using:

$ ./configure
$ make
$ make install

Try it out

  1. Create a file describing the structure of your folder.
  2. Use fs-make to build the script:
    $ fs-make <description-file-name> <script-file-name>
  3. Run the script to generate the folder structure:
    $ . <script-file-name>
  4. To view it:
    $ tree -a <directory-name>

Code of Conduct

Please refer to the code of conduct for the rules for interacting with this project.

Contributing

Please go through the contributing documentation to contribute to this project.

License

This project is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].