Git Product home page Git Product logo

bored-robot's People

Contributors

jberthold avatar lancelet avatar luke-clifton avatar mjhopkins avatar pmellati avatar robbiemcmichael avatar thsutton avatar

Watchers

 avatar  avatar  avatar

bored-robot's Issues

Write demo application `docker-fu`

The app should do what the docker-fu script currently does (for the shell functions in it).

  • framework: subcommand and option parsing
  • prototype using standard haskell and mocks
  • actual implementation using the effects implemented
    Depends on the effects types settling (all other issues)

write command functionality

Each command should be of type Task -> Eff r a, possibly with a==() (otherwise dependent on Command and Command as a GADT.

  • info
  • build
  • clean
  • push
  • pull

Note that pull is not a simple forM, and clean should not stop on failures. info is the easiest but is also merely informational, not truly required. push is the easiest operation.

Parse Dockerfiles (rudimentary)

For today, we only need the FROM, and maybe the list of steps (classified in how many RUN steps).

This can later become a big change, going away from plain docker files.

Implement file system language

Data types:

  • Path

Should support, at least, the following operations:

  • read file
  • write file (testing)
  • mkdir (testing)
  • list directory
  • does directory exist
  • find

And interpreters:

  • IO interpreter
  • pure stateful interpreter

In branch filesystem.

Consider task ordering in `pull` command

The current pull command searches the base image in all target images from the manifest (just like the bash script, the bug originated in the bash version). The correct way is to consider the order, such that the 1st image cannot be based on the 3rd.
Correct the command to

  1. only consider earlier targets in the task list to decide whether not to pull
  2. report an error if a task uses a base image which is target in a later task

Implement docker language

Should support, at least, the following operations:

  • docker rmi
  • docker push
  • docker build
  • docker tag
  • docker pull

Interpreters:

  • Interpret into Proc effect.
  • Interpret into Trace effect.

Environment effect

Requirements:

  • retrieve current time (to form a timestamp)
  • retrieve program name
  • possibly: read environment variables

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.