60 lines
1.7 KiB
Bash
Executable File
60 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install artifact-editor to ~/.local/bin
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
INSTALL_DIR="$HOME/.local/bin"
|
|
CMDFORGE_DIR="$HOME/.cmdforge"
|
|
|
|
mkdir -p "$INSTALL_DIR"
|
|
mkdir -p "$CMDFORGE_DIR"
|
|
|
|
# Create wrapper script for artifact-editor GUI
|
|
cat > "$INSTALL_DIR/artifact-editor" << 'WRAPPER'
|
|
#!/bin/bash
|
|
# artifact-editor wrapper - launches PyQt6 artifact editor
|
|
SCRIPT_DIR="PLACEHOLDER_DIR"
|
|
export PYTHONPATH="$SCRIPT_DIR/src:$PYTHONPATH"
|
|
exec python3 -m artifact_editor.cli "$@"
|
|
WRAPPER
|
|
|
|
# Replace placeholder with actual path
|
|
sed -i "s|PLACEHOLDER_DIR|$SCRIPT_DIR|g" "$INSTALL_DIR/artifact-editor"
|
|
chmod +x "$INSTALL_DIR/artifact-editor"
|
|
|
|
# Install CmdForge tools
|
|
if [ -d "$SCRIPT_DIR/cmdforge" ]; then
|
|
echo "Installing CmdForge tools..."
|
|
for tool in "$SCRIPT_DIR/cmdforge"/*/; do
|
|
tool_name=$(basename "$tool")
|
|
cp -r "$tool" "$CMDFORGE_DIR/"
|
|
|
|
# Create CLI wrapper
|
|
cat > "$INSTALL_DIR/$tool_name" << WRAPPER
|
|
#!/bin/bash
|
|
# CmdForge wrapper for '$tool_name'
|
|
# Auto-generated
|
|
exec /usr/bin/python3 -m cmdforge.runner $tool_name "\$@"
|
|
WRAPPER
|
|
chmod +x "$INSTALL_DIR/$tool_name"
|
|
echo " Installed: $tool_name"
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
echo "Installed artifact-editor to $INSTALL_DIR/artifact-editor"
|
|
echo ""
|
|
echo "Usage:"
|
|
echo " artifact-editor diagram.puml # Edit existing file"
|
|
echo " artifact-editor -o new.puml # Create new file"
|
|
echo ""
|
|
echo "CmdForge tools:"
|
|
echo " artifact-ai --format plantuml --instruction 'Create a class diagram'"
|
|
echo " artifact-export --format plantuml --to output.svg"
|
|
echo ""
|
|
if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then
|
|
echo "NOTE: Add $INSTALL_DIR to your PATH:"
|
|
echo " export PATH=\"\$HOME/.local/bin:\$PATH\""
|
|
fi
|