Coder Social home page Coder Social logo

snwfdhmp / duck Goto Github PK

View Code? Open in Web Editor NEW
39.0 3.0 2.0 28.59 MB

Command snippet framework w/ repository (cloud & self hosted)

Home Page: https://github.com/snwfdhmp/duck

License: Apache License 2.0

Go 99.78% Shell 0.22%
tool productivity hackable automation redundancy developer-tools speedup productivity-booster productivity-tools snippets

duck's Introduction

Message from the developer

As duck is being rewritten, this documentation might contain incorrect informations. I will get it up to date asap.

Introduction

Ducklogo is a developer tool which brings abstraction to the terminal.

Examples usage

C++ : compile

before

$ g++ -o ./binary1.4.3 main.cpp Logger.cpp AnotherFile.cpp MyClass.cpp -lm -Wall

after

$ @ build

Go : create packages

before

$ mkdir myNewPackage
$ touch myNewPackage/myNewPackage.go

after

$ @ pack myNewPackage

git: add, commit, push

before

$ git add *
$ git commit -a -m "My message"
$ git push origin master

after

$ @ gcp "My message"

Dependencies

name installation process
curl apt install curl or brew install curl or whatever
go official tutorial

Installation

  • Download the latest version of duck here

  • Move it into /usr/local/bin and name it duck

  • Run ln -s /usr/local/bin/duck /usr/local/bin/@ to add @ support

  • Download the project.conf in ressources/duck.conf (on the repo) and put it in /etc/duck/duck.conf

  • Start using duck !

One-line Installation

Currently not available

Installing duck from sources is a very easy step.

Once you have curl and go installed, just run :

WARNING : Due to recent changes, this script is being rewritten. You can still install duck but not with the script.

$ curl https://raw.githubusercontent.com/snwfdhmp/duck/master/INSTALL.sh | bash

This will download the installation script and execute it. Ensure to have sudo permissions.

Manual Installation

This will come later.

Usage

duck is available under the alias @ to speed up the command-writing process.

if @ is not available for you, run ln -s $(which duck) /usr/local/bin/@

usage: @ <action> [args]

command description
@ init add duck to your project
@ install pkg download and install package pkg
@ lings view loaded lings
@ exec run your project
@ repo-list print a list of installed repositories
@ mkdir mkdir a directory if it doesn't exist
@ buid build your project

To see the list of all available commands, type @ help

Getting started

Create a new directory for your projects

$ mkdir my-project
$ cd my-project

Init a duck repo in this directory

$ @ init
Name: tictactoe
Lang: go
Main: game.go

Install the packages you want

see the official repo here to discover packages

$ @ install snwfdhmp/std
$ @ install snwfdhmp/go
$ @ install snwfdhmp/cpp
$ @ install snwfdhmp/junk

Make a ling

Lings are duck's most interesting part. They are custom commands you build to avoid repeating commands.

Examples :

This Will execute
@ pack MyPackage mkdir MyPackage && touch MyPackage/MyPackage.go
@ gcp "My message" git add * && git commit -a -m "My message" && git push

Tags

You can use different $tags in a ling

Tag Description Example
$main Your project's main file main.go
$name Your project's name myAwesomeProject
$path Path to your project /home/snwfdhmp/my-project
$1, $2, ..., $9 Commands arguments (like in shell) @ create toto => mkdir toto && touch toto/toto.go

Example lings using tags :

This Will execute
@ build go build -o $path/$name
@ junk fileToThrow.txt mv fileToThrow.txt $path/.junk

Sample package

Packages contain lings

You can build packages to import/export lings.

Create a file in YOURPROJECT/.duck/YOURNAME/PKGNAME.pkg

.duck/pkg/snwfdhmp/go.pkg

{
	"Dependencies":[],
	"Lings":[
		{
			"Label":"build",
			"Description":"compile project",
			"Commands":["go build -o $name $main"],
			"Aliases":["b"]
		},
		{
			"Label":"pack",
			"Description":"create a new package",
			"Commands":[
				"mkdir $1",
				"touch $1/$1.go"
				],
			"Aliases":["p"]
		},
		{
			"Label":"run",
			"Description":"go run your project",
			"Commands":[
				"go run $main"
				],
			"Aliases":["r"]
		}
	]
}

Contributing

Duck is currently closed to contributions.

However, please feel free to open issues.

Author

  • snwfdhmp (I'm currently the only one on this project.)

Thanks to

duck's People

Contributors

loicbourgois avatar snwfdhmp avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

duck's Issues

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.