Clojureの実行のお作法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* clojureで作ったツールを作るためのツール [#o0d1256e]
* 目次 [#b443430f]
#contents
* project.clj について [#e7d1b819]
project.cljは、Clojureプロジェクトの依存関係や設定を管理...
** project.cljの基本構造 [#oa5db063]
基本的な構造は以下のようになります:
(defproject プロジェクト名 "バージョン"
:description "プロジェクトの説明"
:dependencies [[org.clojure/clojure "バージョン"]]
:main メイン名前空間)
例:
(defproject xxx "0.1.0-SNAPSHOT"
:description "説明"
:dependencies [[org.clojure/clojure "1.11.1"]]
:main xxx.xxx)
* project.cljを用意する [#oe8efa41]
** プロジェクトの生成は以下のコマンドを使うのが基本 [#leb...
lein new app fileserver
README.mdファイルや、.gitignoreファイルやtestディレクトリ...
** clojureプロジェクト作成ツールを作ってみる [#xc945e56]
上記のことを知らずに、作ってしまった記事が以下である。学...
clojureの実行するための書き方が決まっている感じがするが、...
#!/bin/bash
# 使用方法を表示する関数
function show_usage() {
echo "使用方法: new_clj <名前空間> <ファイル名> <プ...
echo ""
echo "引数:"
echo " 名前空間 - Clojureの名前空間"
echo " ファイル名 - 作成するClojureファイル...
echo " プロジェクトの説明 - プロジェクトの説明文"
echo ""
echo "例:"
echo " new_clj myapp core \"My First Clojure App\""
}
# Clojureプロジェクトを新規作成する関数
# 引数:
# $1: 名前空間
# $2: clojureのコードを書くファイル名
# $3: プロジェクトの説明
function new_clj() {
# 引数の数をチェック
if [ $# -ne 3 ]; then
echo "エラー: 引数の数が不正です。3つの引数が必...
echo ""
show_usage
return 1
fi
# 引数の取得
namespace=$1
filename=$2
summary=$3
# 引数の妥当性チェック
if [ -z "$namespace" ] || [ -z "$filename" ] || [ -z...
echo "エラー: 空の引数は指定できません。"
echo ""
show_usage
return 1
fi
# ファイル・ディレクトリ設定
ext="clj"
src_dir="$namespace/src/$namespace"
pathname="$src_dir/$filename.$ext"
filepath=${filename//-/_} # ハイフンをアンダースコ...
projectFile="$namespace/project.clj"
# ディレクトリ構造の作成
if ! mkdir -p "$src_dir"; then
echo "エラー: ディレクトリの作成に失敗しました。"
return 1
fi
# project.clj の生成
if [ ! -f "$projectFile" ]; then
cat << EOF > "$projectFile"
(defproject $namespace "0.1.0-SNAPSHOT"
:description "$summary"
:dependencies [[org.clojure/clojure "1.11.1"]]
:main $namespace.$filepath)
EOF
else
echo "警告: project.clj は既に存在します。スキッ...
fi
# Clojureソースファイルの生成
if [ ! -f "$pathname" ]; then
cat << EOF > "$pathname"
(ns $namespace.$filepath
(:gen-class))
(defn sample-command1
"サンプルコマンド1の実装"
[args]
(println "sample-command1が実行されました")
(println "引数:" args))
(defn sample-command2
"サンプルコマンド2の実装"
[args]
(println "sample-command2が実行されました")
(println "引数:" args))
(defn usage
"使用方法を表示"
[]
(println "使用方法: lein run <command> [args...]")
(println "")
(println "利用可能なコマンド:")
(println " sample-command1 - サンプルコマンド1の説明")
(println " sample-command2 - サンプルコマンド2の説明...
(defn -main
"アプリケーションのエントリーポイント"
[& args]
(if (empty? args)
(usage)
(let [command (first args)
command-args (rest args)]
(case command
"sample-command1" (sample-command1 command-args)
"sample-command2" (sample-command2 command-args)
(do
(println "エラー: 不明なコマンドです:" command)
(println "")
(usage))))))
EOF
echo "Clojureソースファイルを生成しました: $path...
else
echo "警告: Clojureソースファイル ($pathname) は...
fi
# セットアップ手順の表示
cat << EOF
プロジェクトの作成が完了しました!
# セットアップ手順
0. Git Bashで日本語を使用する場合
powershell -command "chcp 65001"
1. Javaのセットアップ
set JAVA_HOME=C:\\Program Files\\Java\\jdk-17
2. プロジェクトディレクトリへ移動
cd $namespace
3. 依存関係の解決(初回のみ)
lein.bat deps
4. プロジェクトの実行
lein.bat run
EOF
return 0
}
* 前提 [#ze4305e1]
スクリプトを実行する前にLeiningenがインストールされている...
lein.batがあるディレクトリを環境変数のPATHに加える必要が...
* 注意 [#s8620e62]
windows11で動作確認したやり方です。macの場合は .batという...
clojureでwindowsのgit bashを使う場合。UTF-8を使う場合は以...
git bashで、文字化けの修正がうまくいったコマンド。git bas...
powershell -command "chcp 65001"
終了行:
* clojureで作ったツールを作るためのツール [#o0d1256e]
* 目次 [#b443430f]
#contents
* project.clj について [#e7d1b819]
project.cljは、Clojureプロジェクトの依存関係や設定を管理...
** project.cljの基本構造 [#oa5db063]
基本的な構造は以下のようになります:
(defproject プロジェクト名 "バージョン"
:description "プロジェクトの説明"
:dependencies [[org.clojure/clojure "バージョン"]]
:main メイン名前空間)
例:
(defproject xxx "0.1.0-SNAPSHOT"
:description "説明"
:dependencies [[org.clojure/clojure "1.11.1"]]
:main xxx.xxx)
* project.cljを用意する [#oe8efa41]
** プロジェクトの生成は以下のコマンドを使うのが基本 [#leb...
lein new app fileserver
README.mdファイルや、.gitignoreファイルやtestディレクトリ...
** clojureプロジェクト作成ツールを作ってみる [#xc945e56]
上記のことを知らずに、作ってしまった記事が以下である。学...
clojureの実行するための書き方が決まっている感じがするが、...
#!/bin/bash
# 使用方法を表示する関数
function show_usage() {
echo "使用方法: new_clj <名前空間> <ファイル名> <プ...
echo ""
echo "引数:"
echo " 名前空間 - Clojureの名前空間"
echo " ファイル名 - 作成するClojureファイル...
echo " プロジェクトの説明 - プロジェクトの説明文"
echo ""
echo "例:"
echo " new_clj myapp core \"My First Clojure App\""
}
# Clojureプロジェクトを新規作成する関数
# 引数:
# $1: 名前空間
# $2: clojureのコードを書くファイル名
# $3: プロジェクトの説明
function new_clj() {
# 引数の数をチェック
if [ $# -ne 3 ]; then
echo "エラー: 引数の数が不正です。3つの引数が必...
echo ""
show_usage
return 1
fi
# 引数の取得
namespace=$1
filename=$2
summary=$3
# 引数の妥当性チェック
if [ -z "$namespace" ] || [ -z "$filename" ] || [ -z...
echo "エラー: 空の引数は指定できません。"
echo ""
show_usage
return 1
fi
# ファイル・ディレクトリ設定
ext="clj"
src_dir="$namespace/src/$namespace"
pathname="$src_dir/$filename.$ext"
filepath=${filename//-/_} # ハイフンをアンダースコ...
projectFile="$namespace/project.clj"
# ディレクトリ構造の作成
if ! mkdir -p "$src_dir"; then
echo "エラー: ディレクトリの作成に失敗しました。"
return 1
fi
# project.clj の生成
if [ ! -f "$projectFile" ]; then
cat << EOF > "$projectFile"
(defproject $namespace "0.1.0-SNAPSHOT"
:description "$summary"
:dependencies [[org.clojure/clojure "1.11.1"]]
:main $namespace.$filepath)
EOF
else
echo "警告: project.clj は既に存在します。スキッ...
fi
# Clojureソースファイルの生成
if [ ! -f "$pathname" ]; then
cat << EOF > "$pathname"
(ns $namespace.$filepath
(:gen-class))
(defn sample-command1
"サンプルコマンド1の実装"
[args]
(println "sample-command1が実行されました")
(println "引数:" args))
(defn sample-command2
"サンプルコマンド2の実装"
[args]
(println "sample-command2が実行されました")
(println "引数:" args))
(defn usage
"使用方法を表示"
[]
(println "使用方法: lein run <command> [args...]")
(println "")
(println "利用可能なコマンド:")
(println " sample-command1 - サンプルコマンド1の説明")
(println " sample-command2 - サンプルコマンド2の説明...
(defn -main
"アプリケーションのエントリーポイント"
[& args]
(if (empty? args)
(usage)
(let [command (first args)
command-args (rest args)]
(case command
"sample-command1" (sample-command1 command-args)
"sample-command2" (sample-command2 command-args)
(do
(println "エラー: 不明なコマンドです:" command)
(println "")
(usage))))))
EOF
echo "Clojureソースファイルを生成しました: $path...
else
echo "警告: Clojureソースファイル ($pathname) は...
fi
# セットアップ手順の表示
cat << EOF
プロジェクトの作成が完了しました!
# セットアップ手順
0. Git Bashで日本語を使用する場合
powershell -command "chcp 65001"
1. Javaのセットアップ
set JAVA_HOME=C:\\Program Files\\Java\\jdk-17
2. プロジェクトディレクトリへ移動
cd $namespace
3. 依存関係の解決(初回のみ)
lein.bat deps
4. プロジェクトの実行
lein.bat run
EOF
return 0
}
* 前提 [#ze4305e1]
スクリプトを実行する前にLeiningenがインストールされている...
lein.batがあるディレクトリを環境変数のPATHに加える必要が...
* 注意 [#s8620e62]
windows11で動作確認したやり方です。macの場合は .batという...
clojureでwindowsのgit bashを使う場合。UTF-8を使う場合は以...
git bashで、文字化けの修正がうまくいったコマンド。git bas...
powershell -command "chcp 65001"
ページ名: