duck

Command snippets-tool for repetitive development task. Share them among your team or with the world thanks to an online repository system (optional, free, open source).

Github星跟踪图

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

主要指标

概览
名称与所有者snwfdhmp/duck
主编程语言Go
编程语言Go (语言数: 2)
平台
许可证Apache License 2.0
所有者活动
创建于2017-04-30 12:19:50
推送于2018-02-12 11:10:53
最后一次提交2018-02-12 12:10:52
发布数6
最新版本名称v0.2.1 (发布于 2017-10-22 13:16:28)
第一版名称v0.1.1-alpha (发布于 )
用户参与
星数40
关注者数3
派生数2
提交数323
已启用问题?
问题数1
打开的问题数0
拉请求数1
打开的拉请求数0
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?