Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3494d57
Update .gitignore to exclude additional files
anshumanjadiya1102 Nov 10, 2025
a8ddefc
Refactor pom.xml for MyCMD-GUI project
anshumanjadiya1102 Nov 10, 2025
e506d4a
Refactor App to launch JavaFX GUI instead of CLI
anshumanjadiya1102 Nov 10, 2025
a7c6e58
Update Command interface with description and usage methods
anshumanjadiya1102 Nov 10, 2025
3ada1eb
Refactor ShellContext by removing unused code
anshumanjadiya1102 Nov 10, 2025
1e62684
Create CommandRegistry for command management
anshumanjadiya1102 Nov 10, 2025
8dbed6e
Add ShellEngine class for command execution
anshumanjadiya1102 Nov 10, 2025
6dc4577
Add ConsoleShell for developer console mode
anshumanjadiya1102 Nov 10, 2025
0497887
Refactor StringUtils to add utility methods
anshumanjadiya1102 Nov 10, 2025
7856ea2
Create MainApp as JavaFX entry point for MyCMD
anshumanjadiya1102 Nov 10, 2025
fac0913
Add TerminalController for terminal GUI functionality
anshumanjadiya1102 Nov 10, 2025
6a86af3
Add terminal.fxml layout for terminal GUI
anshumanjadiya1102 Nov 10, 2025
8db3275
Create style.css
anshumanjadiya1102 Nov 10, 2025
25c5d09
Delete src/main/java/com/mycmd/gui/style.css
anshumanjadiya1102 Nov 10, 2025
eafced5
Update terminal.fxml
anshumanjadiya1102 Nov 10, 2025
ffcdb16
Add terminal.fxml layout for terminal GUI
anshumanjadiya1102 Nov 10, 2025
0335ffe
Add style.css for GUI styling
anshumanjadiya1102 Nov 10, 2025
d9ae5d1
Add MyCMD.bat to launch MyCMD-GUI
anshumanjadiya1102 Nov 10, 2025
942fff7
Add IDE directories to .gitignore
anshumanjadiya1102 Nov 10, 2025
2ccbe5c
Create mvnw
anshumanjadiya1102 Nov 10, 2025
fec39de
Create mvnw.cmd
anshumanjadiya1102 Nov 10, 2025
fb05250
Add GitHub Actions workflow for building MyCMD-GUI
anshumanjadiya1102 Nov 10, 2025
3299a25
Create .gitkeep
anshumanjadiya1102 Nov 10, 2025
9d25149
Refactor build-windows.bat for Maven Wrapper usage
anshumanjadiya1102 Nov 10, 2025
e7caddb
Refactor build script for MyCMD
anshumanjadiya1102 Nov 10, 2025
651fb5d
Add default configuration properties for MyCMD
anshumanjadiya1102 Nov 10, 2025
cb22514
Create gg
anshumanjadiya1102 Nov 10, 2025
215e730
Add icon-logo
anshumanjadiya1102 Nov 10, 2025
9d32f82
Delete src/main/resources/com/mycmd/icons/gg
anshumanjadiya1102 Nov 10, 2025
60c9008
Merge branch 'main' into feature/add-terminal-gui
anshumanjadiya1102 Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: 🧱 Build MyCMD-GUI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
name: 🔨 Build and Package
runs-on: ubuntu-latest

steps:
- name: 🧩 Checkout source code
uses: actions/checkout@v4

- name: ☕ Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: maven

- name: 🧰 Build using Maven Wrapper
run: ./mvnw -B clean package

- name: 📦 Upload built JAR artifact
uses: actions/upload-artifact@v4
with:
name: MyCMD-GUI
path: target/*.jar
52 changes: 51 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,51 @@
target/

*.class


*.log


*.ctxt


.mtj.tmp/


*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# IntelliJ / VS Code / Eclipse
.idea/
.vscode/
*.iml
.project
.classpath
.settings/


target/
out/


.mvn/wrapper/maven-wrapper.jar


.DS_Store
Thumbs.db


javafx_cache/


launcher/*.exe
launcher/*.lnk
installer/output/


.idea/
.vscode/
9 changes: 9 additions & 0 deletions launcher/MyCMD.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@echo off
setlocal
set MYCMD_LAUNCHED=true

:: Hide CMD window by using javaw instead of java
javaw -jar target\MyCMD-GUI-1.0-SNAPSHOT.jar

endlocal
exit
1 change: 1 addition & 0 deletions lib/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions mvnw
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions mvnw.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

88 changes: 46 additions & 42 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,76 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.mycmd</groupId>
<artifactId>MyCMD</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<name>MyCMD</name>
<description>A custom CMD shell written in Java</description>
<artifactId>MyCMD-GUI</artifactId>
<version>1.0.0</version>
<name>MyCMD-GUI</name>
<description>Dark futuristic JavaFX shell for MyCMD</description>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<javafx.version>21</javafx.version>
</properties>

<dependencies>
<!-- JavaFX -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
<scope>provided</scope>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<!-- Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>


<!-- JavaFX Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>com.mycmd.App</mainClass>
</manifest>
</archive>
<mainClass>com.mycmd.gui.MainApp</mainClass>
</configuration>
</plugin>

<!-- Spotless code formatter -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<java>
<googleJavaFormat>
<version>1.17.0</version>
<style>AOSP</style>
</googleJavaFormat>
</java>
</configuration>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mycmd.gui.MainApp</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
</project>
25 changes: 7 additions & 18 deletions scripts/build-linux.sh
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
#!/bin/bash
echo "=== Building MyCMD for Linux ==="
echo "🏗️ Building MyCMD for Linux..."

mvn clean package
# Clean and package with Maven Wrapper
./mvnw clean package

rm -rf dist
mkdir -p dist/bin dist/lib dist/icons
# Move JAR to dist folder
mkdir -p dist
cp target/MyCMD-GUI*.jar dist/MyCMD-GUI.jar

cp target/MyCMD-1.0.jar dist/lib/dependencies.jar
cp icons/mycmd.ico dist/icons/mycmd.ico

# Example jpackage usage
jpackage \
--name MyCMD \
--input dist/lib \
--main-jar dependencies.jar \
--main-class com.mycmd.App \
--icon icons/mycmd.ico \
--type deb \
--dest dist

echo "Build complete. Installer is in dist/"
echo "✅ Build complete! File located in dist/MyCMD-GUI.jar"
21 changes: 8 additions & 13 deletions scripts/build-windows.bat
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
@echo off
echo === Building MyCMD for Windows ===
echo 🏗️ Building MyCMD for Windows...

REM Clean and build jar
mvn clean package
REM Clean and package using Maven Wrapper
call mvnw.cmd clean package

REM Create dist structure
rmdir /s /q dist
mkdir dist\bin
mkdir dist\lib
mkdir dist\icons
REM Move output JARs to /dist folder
if not exist dist mkdir dist
copy target\MyCMD-GUI*.jar dist\MyCMD-GUI.jar

REM Copy jar + icon
copy target\MyCMD-1.0.jar dist\lib\dependencies.jar
copy icons\mycmd.ico dist\icons\mycmd.ico

echo Build complete. Use Launch4j + Inno Setup to package installer.
echo ✅ Build complete! File located in dist\MyCMD-GUI.jar
pause
Loading
Loading