{"id":14155433,"url":"https://github.com/azukaar/GuPM","last_synced_at":"2025-08-06T01:31:48.695Z","repository":{"id":94281987,"uuid":"176838961","full_name":"azukaar/GuPM","owner":"azukaar","description":"🐶📦 Global Universal Project Manager -- Package manager, cli tool, scripts for all your projects and your system","archived":false,"fork":false,"pushed_at":"2019-08-11T11:15:38.000Z","size":1059742,"stargazers_count":141,"open_issues_count":30,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-12-02T09:51:28.360Z","etag":null,"topics":["golang","javascript","package-manager","php","ruby","script","scripting-language"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azukaar.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-21T00:35:32.000Z","updated_at":"2024-10-25T03:41:07.000Z","dependencies_parsed_at":"2023-04-09T21:46:17.107Z","dependency_job_id":null,"html_url":"https://github.com/azukaar/GuPM","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azukaar%2FGuPM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azukaar%2FGuPM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azukaar%2FGuPM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azukaar%2FGuPM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azukaar","download_url":"https://codeload.github.com/azukaar/GuPM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228821405,"owners_count":17977166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","javascript","package-manager","php","ruby","script","scripting-language"],"created_at":"2024-08-17T08:03:12.064Z","updated_at":"2024-12-09T02:31:22.950Z","avatar_url":"https://github.com/azukaar.png","language":"Go","readme":"![dog](./docs/banner.png)\r\n\r\n---\r\n\r\n\u003cbr /\u003e\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20MacOS-pink.svg?style=for-the-badge\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/CircleCI-Passing-green.svg?style=for-the-badge\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/GoLang-1.12.5-blue.svg?style=for-the-badge\"\u003e\r\n\u003cbr/\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/Ruby-Gem-e9573f.svg?style=for-the-badge\u0026logo=ruby\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/Javascript-NPM | Entropic-25799f.svg?style=for-the-badge\u0026logo=javascript\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/Python-PIP-yellow.svg?style=for-the-badge\u0026logo=python\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/PHP-Composer-black.svg?style=for-the-badge\u0026logo=php\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/Windows-Chocolatey-2f6492.svg?style=for-the-badge\u0026logo=windows\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/MacOS-Brew-f9d094.svg?style=for-the-badge\u0026logo=apple\"\u003e\r\n\u003cimg src=\"https://img.shields.io/badge/GoLang-Go Get-E0EBF5.svg?style=for-the-badge\u0026logo=go\"\u003e\r\n\u003c/p\u003e\r\n\u003cbr /\u003e\r\n\u003cbr /\u003e\r\nGlobal Universal Project Manager -- Package manager, CLI tool, and scripts for all your projects and your system. Whether you are a developer managing dependencies, or a sysadmin looking for your new toolbelt (bye bash!) you are among friends. \u003ca href=\"https://github.com/azukaar/GuPM/wiki\"\u003eCheck the Wiki for documentation.\u003c/a\u003e \u003cbr /\u003e\r\n\u003cbr /\u003e\r\n\r\n * ⏱ **Fast**. Written in native code, with real multi-threading.\r\n * 👓 **Smart**. Memory efficient solution using hard-link, which do not duplicate dependencies across project.\r\n * 🌍 **Global**. Windows, Mac and Linux compatibility.\r\n * 🌈 **Universal**. Usable in any kind of project (Ruby, JS, Go, C, Python, etc...)\r\n * 👗 **Customizable**. Flexible plugin system: make GuPM your own.\r\n * 👝 **Future Proof**. Let's make this the last PM you will ever need.\r\n * 🌳 **Decentralized**. You keep control of the sources you tap into.\r\n * 🐳 **No dependencies**. You don't need anythind else (you don't need NPM to use NPM's repository with GuPM)\r\n\r\nThis idea is born from the frustration of having to give up my habits whenever I would switch off Javascript and lose NPM (Whether it would be in Ruby, Go, or even situations outside of coding). GuPM is claiming to take inspiration from the best things in Brew, NPM, Gem, etc... And compile them in a single tool, usable in any project.\r\n\u003cbr /\u003e\r\n\r\n * 📦 **Packages Manager**. Install packages from any repository and manage dependencies in a seamless way.\r\n * 🖥 **CLI Manager**. Install and use CLI tools in a flexible way without conflicts.\r\n * 🚏 **Scripting**. GuPM is bundled with GuScript, allowing you to build cross platform scripts for your project.\r\n * 🐙 **Packed with features**. Manage configs, git hooks, parallel executions, environment variables, CI, and more.\r\n * 🔥 **Even more to come!** See : [Next](https://github.com/azukaar/GuPM/projects/1#column-5571474) for the roadmap of feature. You are welcomed to contribute!\r\n\u003cbr /\u003e\r\n\r\n---\r\n\r\n# Getting started : \r\n\r\n## Quick links\r\n\r\n * [Wiki](https://github.com/azukaar/GuPM/wiki)\r\n * [Quick Start](https://github.com/azukaar/GuPM/wiki/quick-start)\r\n * [Getting started with Node](https://medium.com/@azukaar/gupm-to-manage-your-node-js-project-b7664503f3de?sk=f901b86d888b44dcdb78c644bd5df002)\r\n * [Getting started with Go](https://medium.com/@azukaar/gupm-to-manage-your-go-project-5d19c341403c)\r\n * [Create your own repository](https://github.com/azukaar/GuPM/wiki/repositories)\r\n * [Official GuPM repository](https://github.com/azukaar/GuPM-official)\r\n\r\n## Installation\r\n\r\n### Linux and Mac OS : \r\n\r\n⌨️ `$ curl -fsSL  https://azukaar.github.io/GuPM/install.sh | bash`\r\n\r\n### Windows \r\n\r\n💾 [Windows_install.exe](https://azukaar.github.io/GuPM/windows_install.exe)\r\n\r\n## JS/NPM example\r\n\r\nThis example is setting up a project using the [NPM plugin](https://github.com/azukaar/GuPM-official).\r\nMore details on how to use GuPM with node [here]().\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg width=\"824px\" src=\"./docs/intro1.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n## Go example\r\n\r\nThis example is setting up a project using the [Go plugin](https://github.com/azukaar/GuPM-official).\r\nMore details on how to use GuPM with Go [here]().\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003cimg width=\"824px\" src=\"./docs/intro2.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n# Dependency Manager\r\n\r\n## New projects\r\n\r\nIn order to simply bootstrap a new project you can run `g bootstrap` you can also use `b` and add a provider `g b -p npm`\r\n\r\n## Make\r\n\r\nThis command will set up your project by getting dependencies. Adding a -p or --provider argument allows you to specify what provider to use initially.\r\nPlease note you do NOT need to install npm / gem / whatever to use their corresponding provider, GuPM implement everything itself.\r\n\r\n```bash\r\n# reads gupm.json\r\ng make\r\n\r\n# reads package.json\r\ng make -p npm\r\n```\r\n\r\n## Install\r\n\r\n```bash\r\n# use default repo [Config in gupm.json]\r\n\r\ng install mysql\r\ng i mysql\r\n\r\n# use brew\r\n\r\ng install brew://mysql\r\ng install -p brew mysql\r\n\r\n# use NPM\r\n\r\ng install npm://react@1 # will save in gupm.json\r\ng install -p npm react@1 # will save in package.json\r\n```\r\n\r\nMore commands [in the wiki](https://github.com/azukaar/GuPM/wiki/cli-references)\r\n\r\n## GuPM management\r\n\r\n### Plugins\r\n\r\nGuPM needs plugins to work with various repos :\r\n\r\n```bash\r\n# Install provider-go from the official repo\r\ng plugin install https://azukaar.github.io/GuPM-official/repo:provider-go\r\n```\r\n\r\nSee https://github.com/azukaar/gupm-official for a list of officially suported plugins.\r\nSee https://github.com/azukaar/GuPM/wiki/how-to-create-a-provider to create your own.\r\n\r\n### updates\r\n\r\nGuPM can be managed using :\r\n\r\n```bash\r\ng self upgrade\r\n```\r\n\r\nMore commands [in the wiki](https://github.com/azukaar/GuPM/wiki/cli-references)\r\n\r\n## Write GuPM scripts\r\n\r\nYou can use GuScript to write bash-like files, used for setting up your project, use it, or anything literally.\r\nThink of GuScript as a replacement for your bash scripts.\r\n\r\n```\r\n// name_setup.gs\r\n\r\nvar name = input('What is your name')\r\necho('Welcome' + name)\r\nsaveName(name)\r\n```\r\n\r\nGuScript is based on javascript, and therefore allow advanced object/arrays manipulations, function definitions, etc...\r\nFind more details about the available APIs in the [wiki](https://github.com/azukaar/GuPM/wiki) 1\r\n\r\n## VS Code \r\n\r\nAdd this to your `settings.json` to treat .gs file as javascript (temporary fix to plain text)\r\n\r\n```\r\n\"files.associations\": {\r\n    \"*.gs\": \"javascript\"\r\n}\r\n```\r\n\r\n# Thanks!\r\nPackage Icon made by [smashicons](https://www.smashicons.com/)\r\nDog Icon made by [Freepik](https://www.freepik.com/)\r\n","funding_links":[],"categories":["ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazukaar%2FGuPM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazukaar%2FGuPM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazukaar%2FGuPM/lists"}