Git Product home page Git Product logo

harpoon's Introduction

Harpoon โ‡Œ Haskell driven package manager

Harpoon is a just for fun project made with Haskell language. The goal of Harpoon is to request a database to download and install distant packages automatically.

It'll have to check what is your default package manager to automatically propose to download packages dependencies.

Harpoon options

Option Description
help Show help and version
search package Search for a package
get package [version] Install a specific package optionally matching version

search and get commands are online database requests which is hosted on Github.

How looks the database ?

The database is a JSON file in a Github repo.

{
	"packages": [
		{
			"name" : "package name",
			"description" : "package description",
			"locations" : [
				{ "version" : "package version", "url" : "package url" },
				{ "version" : "other version", "url" : "other package url" }
			]
		},
		{
			"name" : "package2 name",
			"description" : "package2 description",
			"locations" : [
				{ "version" : "package2 version", "url" : "package2 url" },
				{ "version" : "other p2 version", "url" : "other package2 url" }
			]
		}
	]
}

Packages are defined by their name, description and version. The location field is used to associate a version to a download link in order to compile the right version.

How to create a harpoon file ?

In order to indicate how your package has to be installed you have to indicate some information to Harpoon with the help of a .harpoon file.

This is how a .harpoon is composed :

# comment
Name : package_name
Version : package_version
Type : dll / bin
InnerDeps : harpoon_dependency
OuterDeps : extern_dependency
TempInnerDeps : building_dependency
TempOuterDeps : building_dependency
CompilationBackend : cmake / make / ninja / scripts ...

note : Deps fields are optional and accepts multiple dependencies, just report them space delimited.

How to publish a Harpoon package ?

Todo.

harpoon's People

Contributors

harmos274 avatar

Watchers

 avatar  avatar  avatar

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.