johnwangwyx / cmdCompass

💻🧭cmdCompass is a cross-platform terminal command manager/notebook, enabling users to organize commands into collections, apply tags, define templates with dynamic variables, and view Linux Man (manual) pages with automatic command option highlighting
GNU General Public License v3.0
50 stars 6 forks source link

Possible contribution #1

Open harrellbm opened 3 months ago

harrellbm commented 3 months ago

Just ran across this and it looks very promising! I have started a similar tool with the same basic idea of managing commands. I started from a different direction and have built a basic command runner using the Python and the textual library for gui. I'd be happy to share that code if it might be helpful since you have a much better developed command management system already

johnwangwyx commented 3 months ago

Just ran across this and it looks very promising! I have started a similar tool with the same basic idea of managing commands. I started from a different direction and have built a basic command runner using the Python and the textual library for gui. I'd be happy to share that code if it might be helpful since you have a much better developed command management system already

Hi @harrellbm, I'm glad you find cmdCompass interesting! I'm definitely open to exploring possibilities for contributions, and I appreciate your willingness to help.

It sounds like your project could offer some valuable insights. Have you uploaded it to a public repository? I'd love to take a look and see how we might integrate our efforts.

harrellbm commented 3 months ago

@johnwangwyx I have not yet but will comment the link to the repo when I do!

johnwangwyx commented 3 months ago

@johnwangwyx I have not yet but will comment the link to the repo when I do!

Thank you!

harrellbm commented 3 months ago

@johnwangwyx Here it is! https://github.com/harrellbm/scripting-engine It is mostly theoretical at this point with the UI looking like this:

image
johnwangwyx commented 3 months ago

Hi @harrellbm,

Thank you for sharing your project. It's genuinely fascinating and I can see different use cases and applications with this. I believe the potential for this app is much greater with further development. I see my app emphasizes more on the "collection" whereas yours excels in "execution".

Here is an interesting use case I am thinking of for your app:

  1. User-defined terminal or website website crawler job with the corresponding plugins.
  2. User sets up a scheduled job (Kron in your case).
  3. User uses a monitor plugin to watch for a specific entry or regex match for the output from the terminal or the web crawler.
  4. User define action plugin to perform specific actions on the monitor result.

I see uses cases for this workflow in monitoring:

  1. Real estate listing aggregation and analysis
  2. Social media post and comment monitoring
  3. E-commerce price tracking and analysis (Personally, I would definitely use it to monitor available spots in full college courses and alert me when a spot opens up.)

Again this is a really interesting project and I also got a lot of inspiration from you. I wish you the best with your project and believe in its potential!

johnwangwyx commented 3 months ago

Hi @harrellbm,

I just uploaded my project structures and descriptions for each file in the README. I hope it may help your project.

drsinger commented 3 months ago

Any thoughts of having a linux version of this program? I have like 18 years of scripts, one-liners, and various other info I have noted over the years and would love a way to organize it all.

johnwangwyx commented 3 months ago

Edit: Linux version is now released: Please checkout release 1.0.0.

Hi @drsinger,

I am currently working on the Linux build and did a few tests on my side. If you don't mind you can download the unreleased build here from the artifact section and let me know if you have any problems using the app. (To use the app you will just need to uncompress the artifact and open the cmdCompass executable inside).This will give me more confidence in the Linux release.

Please note that the unreleased build is built with Ubuntu. I have not tested the compatibility with other distros like Centos or Arch etc.

johnwangwyx commented 3 months ago

Hi @drsinger, I have now released linux build for Ubuntu, Debian, and Centos and added installation documentation on README.

harrellbm commented 3 months ago

project.

Awesome! I've been a bit bogged down with work but will definitely dig into it when I get a chance!

ghost commented 3 months ago

Hi @drsinger, I have now released linux build for Ubuntu, Debian, and Centos and added installation documentation on README.

Following for an Arch release :)

johnwangwyx commented 3 months ago

Hi @drsinger, I have now released linux build for Ubuntu, Debian, and Centos and added installation documentation on README.

Following for an Arch release :)

Done, please refer to release 1.0.1 :)

ghost commented 3 months ago

2024-06-05T08:58:08,375573137-04:00

Can confirm it will run on Arch straight from the executable in the tar.gz. However, pacman does not recognize the PKGBUILD and will return a warning that the package is invalid or corrupted. The metadata seems to be part of the problem and may need updated and reformatted. I tried to see what I could pull from source to compile a valid PKGBUILD, but continued to receive errors from namcap, and several attempts at makepkg failed for me. Despite the executable successfully running, there are too many risks involved with potential dependency conflicts that could break the system. Until it can be integrated by pacman, it would not be wise to run this on Arch unless containerized.

johnwangwyx commented 3 months ago

Hi @NaturalBornCyborg,

I am sorry for any confusion caused by using the app. The app's executable is built with pyinstaller to facilitate distribution across different operating systems (and so many different Linux distros) without a high development overhead. The app made by pyinstaller is actually self-contained, bundling all the necessary dependencies. This means it does not rely on the system's package manager (pacman in the case of Arch Linux) and thus PKGBUILD, or require any external libraries to function. As such, it can run independently without modifying or interfering with the system's existing library setup.

However, I understand the idea of integration with system package managers, which can provide benefits like easier management and uninstallation. I will consider this when I have free time.

Thank you for your feedback, and please let me know if there are other ways I can assist in improving your experience with the application.

(Additionally from your screenshot I realized the save button (image)to save the command may not be as intuitive to the users so you proceed with calling the man page without saving the command. Sorry again for any confusion and thank you for your screenshot and feedback. I have addressed this in a new commit)