Coder Social home page Coder Social logo

japm's Introduction

JAPM

Just-Another-Package-Manager

CodeFactor

JAPM is not intended to be the "next package manger" nor a large and powerfull package manager like apt or pacman. It is, rather, a small and light-weight package manager that can allow you to install small programs. These programs are usually made by indie open source developers. Having a separate package manager allows managing packages in a more organized way. From one side you will have large software that is installed by your main package manager and from the other you have small tools you found on github that make your day-to-day easier. Having all those packages managed by a single package manager can be uncomfortable, and JAPM tries to bring a solution to this.

JAPM is also different from other package managers in the sense that it uses ncurses to create a TUI and represent information in a more organized and better looking way.

However if you want to use it without ncurses it can also work as a normal comand-line package manager.

A package is a .json file usually saved in a remote repository, by default it is Japm Official Packages. If you want to create a package, said repository has the instructions.

JAPM necessary milestones

  • Logging system
  • Error system
  • Input parsing system
  • JSON parsing
  • Local DB CRUD
  • Remote DB reading
  • Actions system
  • Package file download
  • Package Installation
  • Package Removal
  • Package Update
  • Package Search
  • Progress bar
  • Package list

Dependencies:

libjson-c sqlite3 ncurses curl

Note, that even though JAPML has an option of not displaying curses mode, the ncurses library is still required for building from source.

Bulding from source

git clone https://github.com/TheAlexDev23/japm.git
cd japm
cmake -S . -B build
cd build
make
cp ./japm /usr/bin

Downloading a release

Download the latest release and move japm to /usr/bin

How to use

Installing packages

This will install all packages and it's dependencies

sudo japm install package_name1 package_name2 package_name2

Removing packages

Will remove if no packages depend on these.

sudo japm remove package_name1 package_name2 package_name3

If you want to delete a package and all packages that depend on it run the following:

sudo japm -rec remove package_name1 package_name2 package_name3

Updating packages

Will reinstall selected packages but not dependencies

sudo japm update package_name1 package_name2 package_name3

If you want to update all installed packages

sudo japm -all update

Searching for packages

Will search and print general information about a package. sudo japm search package_name1 package_name2 package_name3

Running without ncurses

sudo japm -nocurses ...

Providing log files

sudo japm --log_files logf1 logf2 logf3 --error_log_files errlogf1 errlogf2 errlogf3

Other commands

Run sudo japm --help for a list of available commands and parameters.

japm's People

Contributors

thealexdev23 avatar

Stargazers

Markus Geiger avatar Oliver Tzeng avatar Igor Fernandes avatar Eskinder Fitsum avatar A^ avatar  avatar Can Evgin avatar Nabeen Tiwaree avatar alaska avatar  avatar  avatar

Watchers

 avatar

japm'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.