Code Monkey home page Code Monkey logo

mucommander's Introduction

muCommander

Version License Build Status Dependency Status Coverity Scan Gitter

muCommander is a lightweight, cross-platform file manager with a dual-pane interface.
It runs on any operating system with Java support (macOS, Windows, Linux, *BSD, Solaris...).

Official website: http://www.mucommander.com
Copyright (C) 2002-2018 Maxence Bernard.

Contribution

There are several ways to contribute to muCommander:

  • Found a bug or thinking about a useful feature that is missing? File an issue
  • Want to fix a bug or implement a feature? We are using the standard GitHub flow: fork, make the changes and submit a pull request. Changes are merged to the master branch. See the next section for tips for developing muCommander.
  • If you happen to speak a language that muCommander is not available in or able to improve existing tranlations, you can help translate the interface using the zanata platform.

If you want to get involved in muCommander or have any question or issue to discuss, you are more than welcome to join our rooms on Gitter.

Development

Prerequisites

  • Java Development Kit (JDK) 1.8 or later
  • Git

Forks and pull requests

If you would like to contribute code, it is required to fork the repository and submit a pull request. Within pull requests it is possible to review, discuss and improve the changes until they are ready for production.

Code Editing

After cloning the source code repository from GitHub, you would probably want to import the project to an Integrated Development Environment (IDE) such as Eclipse or IntelliJ.

The code repository of muCommander is comprised of a main project that contains its core functionality and several sub-projects. These projects are Gradle projects. Most of the popular IDEs today allow you to import Gradle projects out-of-the-box or via an IDE plugin. By importing the main project that is located at the root directory of the repository you will get all the required code in the IDE.

How to Run

The use of Gradle wrapper significantly simplifies the build from the command line. The following commands can be invoked from the root directory of the repositoring with no further installation.

You can run the application by typing:

./gradlew run

It is recommended that whenever you get unclear compilation error and before submitting your change you do:

./gradlew clean run

How to Debug

Debugging is a bit more tricky due to the use of an OSGI container. One way of doing that is by extending the launcher script (either run.bat or run.sh, depending on your operating system) with, e.g., -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005, and then debug the application from an IDE as a remote application on host localhost and port 5005.

Debugging example for IntelliJ IDEA

  • First checkout the repository with IDEA (VCS / Checkout from Version Control / Git)
  • Confirm the creation of a new IDEA project
  • Add a new Run Configuration of type Gradle like in the first screenshot below - with DEBUG=1 gradle enables remote debugging (see task runOsgi in build.gradle for details)
  • Add a new Run Configuration of type Remote like in the seconds screenshot below
  • Place your breakpoints
  • Back in the Editor, select mucommander runOsgi config and click the green play button
  • After mucommander has started, select mucommander-remote-debug config and click the green debug button
  • Now you should see something like Connected to the target VM, address: 'localhost:5005', transport: 'socket'
  • If everything works like expected, IDEA will now provide debugging

Run OSGI Configuration - starting the osgi container in debug mode runOsgi config Remote Debug Configuration - enables remote debugging and attaches the session to IDEA runOsgi config

Packaging

The different distributions of muCommander are based on a shadow-jar, standalone jar that contains all the required dependencies and filter their unneeded parts. The creation of the shadow-jar is done by the following command:

./gradlew shadowJar

The creation of a DMG file for MAC OS (produced in build/distributions):

./gradlew createDmg

The creation of an EXE file for Windows (produced in build/launch4j):

./gradlew createExe

The creation of a TGZ file for Linux/Unix (produced in build/distributions):

./gradlew tgz

More packaging options are described in our wiki.

License

muCommander is released under the terms of the GNU General Public License.
Please refer to the license.txt file bundled with muCommander.

mucommander's People

Contributors

aadrian avatar ahadas avatar alexey-lysiuk avatar begray avatar danielerez avatar essobedo avatar hajdam avatar holograph avatar jsebasct avatar m4xence avatar mariusj avatar nrinaudo avatar olivierpaul avatar oujesky avatar personalaccount avatar sandreas avatar sirolf2009 avatar stonefix avatar thomasuebel avatar vladrassokhin avatar xma avatar xmo 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.