{"id":21189676,"url":"https://github.com/sky0621/work-go-gopybyeachenv","last_synced_at":"2025-06-13T22:36:44.070Z","repository":{"id":90296243,"uuid":"66735671","full_name":"sky0621/work-go-GopyByEachEnv","owner":"sky0621","description":"ファイル修正を検知して環境別ディレクトリにコピーするツール","archived":false,"fork":false,"pushed_at":"2016-10-18T05:08:59.000Z","size":9225,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T20:46:20.548Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sky0621.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-27T21:10:54.000Z","updated_at":"2016-10-10T04:30:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"f943f7ad-e57a-4239-af25-55a8aa0a935a","html_url":"https://github.com/sky0621/work-go-GopyByEachEnv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sky0621/work-go-GopyByEachEnv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky0621%2Fwork-go-GopyByEachEnv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky0621%2Fwork-go-GopyByEachEnv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky0621%2Fwork-go-GopyByEachEnv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky0621%2Fwork-go-GopyByEachEnv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sky0621","download_url":"https://codeload.github.com/sky0621/work-go-GopyByEachEnv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky0621%2Fwork-go-GopyByEachEnv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259731019,"owners_count":22902956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T18:53:29.291Z","updated_at":"2025-06-13T22:36:44.048Z","avatar_url":"https://github.com/sky0621.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ファイル修正を検知して環境別ディレクトリにコピーするツール\n## ■言語・ツール・開発環境\n###### Go/Atom\n## ■修正履歴\n###### 2016/08/30 v0.1.0 公開\n###### 2016/10/10 v0.2.0 再構成\n###### 2016/10/16 v0.3.0 コピー設定ファイルをテキストからJSONに変更\n## ■紹介\n###### 職場で、新規のメール送信タスクに着手するたびに、メール送信用の設定ファイルを作っては10以上の環境別にプロパティファイルを量産（そして一部だけ変更）する必要があり、面倒だったので指定のファイルの修正を検知して勝手に指定のディレクトリ群にコピー（して、指定の内容だけ文字列置換）するツールを作りました。\n###### ※「コピーするだけならコマンドプロンプトでも・・・。」とか「頻度的に１回しかないやらないだろうから、ポーリングする意味ないでしょう。」とか、突っ込みどころは満載です。\n###### ★バグつぶし足りてないと思います・・・。\n## ■作成言語\n###### Go です。\n###### go build xxxx.go って打つだけで Exe ファイル作ってくれるのが嬉しかったので使ってみました。\n###### ほぼワンライナーでポート待ち受けサーバプロセス作れたり、多値を返す関数などは最近の言語では見られる特徴ですが、クラスという概念がない（Cで言う構造体を使う）、そして関数を使う時には、構造体をレシーバとするというのは、Javaから始めた人からすると新鮮。\n###### 開発に使ったエディタは Atom ですが、Go 用のプラグインを入れると、恐ろしくコード書きやすいです。\n## ■使い方\n###### 1. まずサンプルの確認として、WorkGoCopyByEachEnv.zip を解凍して cmd.exe（※）叩いてください。（プロンプト開きます）\n###### ※WindowsOS(64bit)用のみ用意（他の環境の場合は要ビルド）\n###### 2. ブラウザ開いて、「http://localhost:7109/gopy/start」と打ってください。\n###### 　※一回叩いたらブラウザは落としてもいいです。（状況はコンソールが吐きます。）\n###### 3. ZIP解凍ディレクトリ内の「_sample」の下に「from」と「to01」、「to02」というディレクトリがあり、「from」の下のプロパティファイルが「to01」、「to02」それぞれにコピーされ、その内容が、同じくZIP解凍ディレクトリ内にある config.json（※コピー時の設定が書かれている） の設定に応じて文字列置換されていることを確認してください。\n###### 4. 試しに、「to01」、「to02」のファイルを削除して、「from」の下のプロパティファイルを開いて適当に修正（保存）すると、10秒以内にその修正内容が「to01」、「to02」の下に反映されます。\n###### 5. あとは、config.json の中を自分の環境に合わせたパスに変更したり、適宜設定を記述してください。\n###### 　（コピーが必要なプロパティファイルが無いなら、そもそも、このプログラムを動かす意味はないです。）\n###### 6. 止めたくなったら、ブラウザ開いて、「http://localhost:7109/gopy/end」と打ってください。\n###### 　※コンソール上で Ctrl + C でもいいですけど。\n###### 　\n###### ★コマンドオプション★\n###### ・待ち受けポートを変えたい時は、コマンドプロンプトにて「cmd.exe」があるパスに移動し、「cmd.exe -p 9999」（※9999のところを使いたいポートにする）\n###### ・コピー元ファイルの変更チェック時間間隔を変えたい時は、コマンドプロンプトにて「cmd.exe」があるパスに移動し、「cmd.exe -s 99」（※99のところをチェックしたい間隔（秒）にする）\n###### ・バージョンを確認したい時は、コマンドプロンプトにて「cmd.exe」があるパスに移動し、「cmd.exe -v」\n## ■その他\n###### node.js とのパフォーマンス比較記事がおもしろいです。\n###### http://postd.cc/the-way-of-the-gopher/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky0621%2Fwork-go-gopybyeachenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsky0621%2Fwork-go-gopybyeachenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky0621%2Fwork-go-gopybyeachenv/lists"}