Skip to content

Commit 2e93556

Browse files
committed
Make install-local.sh more flexible with global and project options.
1 parent 60c4cab commit 2e93556

1 file changed

Lines changed: 60 additions & 36 deletions

File tree

install-local.sh

Lines changed: 60 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,61 @@
11
#!/bin/bash
22

33
# Script to install Kempt locally for testing
4-
# This script sets up the pre-release version of Kempt for use in other projects
4+
# This script sets up the pre-release version of Kempt for use in the current project
55

66
set -e
77

8-
KEMPT_PACKAGE_PATH="/Users/craig/projects/kempt/local-packages/kempt-2.7.1-beta.1.tgz"
9-
PROJECTS_DIR="/Users/craig/projects"
8+
KEMPT_PACKAGE_PATH="/Users/craig/projects/kempt/local-packages/kempt-2.7.1-beta.2.tgz"
109

1110
# Check if the package exists
1211
if [[ ! -f "$KEMPT_PACKAGE_PATH" ]]; then
1312
echo "Error: Package not found at $KEMPT_PACKAGE_PATH"
14-
echo "Please run 'just pack' to create the package first"
13+
echo "Please run 'just pack' from /Users/craig/projects/kempt to create the package first"
1514
exit 1
1615
fi
1716

17+
# Function to install globally
18+
install_globally() {
19+
echo "🌍 Installing Kempt globally..."
20+
npm install -g "$KEMPT_PACKAGE_PATH"
21+
echo "✅ Kempt installed globally!"
22+
echo "📋 You can now use:"
23+
echo " - npx kempt --write '**/*.java'"
24+
echo " - kempt --write '**/*.java' (if globally installed)"
25+
exit 0
26+
}
27+
1828
# Function to set up Kempt for a project
1929
setup_kempt() {
2030
local project_path="$1"
2131
local project_name=$(basename "$project_path")
2232

23-
if [[ ! -d "$project_path" ]]; then
24-
echo "Skipping $project_name - directory not found"
25-
return
26-
fi
27-
2833
echo "Setting up Kempt for $project_name..."
29-
34+
35+
# Check if mise is available and this is a mise project
36+
if command -v mise &> /dev/null && (cd "$project_path" && mise ls 2>/dev/null | grep -q .); then
37+
echo "🔧 mise-based project detected"
38+
echo "📋 Installing Kempt locally for $project_name..."
39+
40+
cd "$project_path"
41+
42+
# Create package.json if it doesn't exist
43+
if [[ ! -f package.json ]]; then
44+
echo "Creating package.json..."
45+
npm init -y > /dev/null
46+
fi
47+
48+
# Install the local package
49+
npm install --save-dev "$KEMPT_PACKAGE_PATH"
50+
51+
echo "✅ Kempt installed successfully in $project_name"
52+
echo "📋 You can now:"
53+
echo " 1. Use: npx prettier --write '**/*.java' --plugin kempt"
54+
echo " 2. Add to .prettierrc: { \"plugins\": [\"kempt\"] }"
55+
echo " 3. Then just use: npx prettier --write '**/*.java'"
56+
3057
# Check if it's a Node.js project
31-
if [[ -f "$project_path/package.json" ]]; then
58+
elif [[ -f "$project_path/package.json" ]]; then
3259
echo "📦 Node.js project detected - installing via npm"
3360
cd "$project_path"
3461
npm install --save-dev "$KEMPT_PACKAGE_PATH"
@@ -50,17 +77,10 @@ setup_kempt() {
5077
fi
5178

5279
echo "✅ Kempt installed successfully in $project_name"
53-
54-
# Check if it's a mise-based project
55-
elif [[ -f "$project_path/mise.toml" || -f "$project_path/.mise.toml" ]]; then
56-
echo "🔧 mise-based project detected"
57-
echo "📋 To use Kempt in $project_name:"
58-
echo " 1. Add to your mise.toml:"
59-
echo " \"npm:kempt\" = \"file:$KEMPT_PACKAGE_PATH\""
60-
echo " 2. Run: mise install"
61-
echo " 3. Update your justfile to use 'kempt' instead of 'prettier-plugin-java'"
62-
echo " 4. Or use directly: npx kempt --write '**/*.java'"
63-
80+
echo "📋 You can now:"
81+
echo " 1. Use: npx kempt --write '**/*.java'"
82+
echo " 2. Or update your prettier config to use 'kempt' plugin instead of 'prettier-plugin-java'"
83+
6484
# Check if it's a Maven project
6585
elif [[ -f "$project_path/pom.xml" ]]; then
6686
echo "☕ Maven project detected"
@@ -82,21 +102,25 @@ setup_kempt() {
82102
fi
83103

84104
echo ""
105+
echo "📦 Package: $KEMPT_PACKAGE_PATH"
106+
echo "🧪 To test the formatting: npx kempt --write '**/*.java'"
85107
}
86108

87-
# Set up in liftwizard
88-
setup_kempt "$PROJECTS_DIR/liftwizard"
89-
90-
# Set up in klass
91-
setup_kempt "$PROJECTS_DIR/klass"
109+
# Check for global flag
110+
if [[ "$1" == "--global" || "$1" == "-g" ]]; then
111+
install_globally
112+
fi
92113

93-
# Return to original directory
94-
cd "$PROJECTS_DIR/kempt"
114+
# If no arguments provided, show usage
115+
if [[ $# -eq 0 ]]; then
116+
echo "Usage: $0 [--global|-g] [project-path]"
117+
echo " --global, -g Install globally instead of locally"
118+
echo " project-path Path to project (default: current directory)"
119+
echo ""
95120

96-
echo "🎉 Setup complete!"
97-
echo ""
98-
echo "📦 Package created at: $KEMPT_PACKAGE_PATH"
99-
echo "🧪 To test the formatting, you can run:"
100-
echo " npx kempt --write '**/*.java'"
101-
echo ""
102-
echo "💡 For Maven projects using Spotless, update your pom.xml to use 'kempt' instead of 'prettier-plugin-java'"
121+
# Use current directory as default
122+
setup_kempt "$(pwd)"
123+
else
124+
# Set up for provided project path
125+
setup_kempt "$1"
126+
fi

0 commit comments

Comments
 (0)