On this page |
場合によっては、HoudiniやLauncherのインストールをスクリプト化することで、アップグレード作業がスタジオのCLI(コマンドベースの)パイプラインにもっと上手く組み込むことができるので便利です。
Launcherインストールのスクリプト化 ¶
SideFX Web APIを介してプログラムからLauncherを取得することができます。
-
sidefx.pyをダウンロードします。のスクリプトには、認証済みでAPIコールするための便利なラッパーが用意されています。
-
以下は、APIを介してLauncherをダウンロードするサンプルコードです。
import sys import os import stat import requests import shutil import subprocess import platform import sidefx CLIENT_ID = "==Your Client Id==" CLIENT_SECRET = "==Your Client Secret==" # 現行プラットフォームが認識されると、SideFX Web APIに渡すことができる現行プラットフォームキーワードが返されます。 # 認識されなかった場合は、空っぽの文字列の''が返されます。 def get_current_platform(): current_platform = platform.system() if current_platform == 'Windows' or current_platform.startswith('CYGWIN'): return 'win64' elif current_platform == 'Darwin': return 'macos' elif current_platform == 'Linux': return 'linux' else: return '' # API関数にアクセス可能なsidefx.serviceオブジェクトを返します。 def create_service(client_id, client_secret_key): return sidefx.service( access_token_url="https://www.sidefx.com/oauth2/application_token", client_id=client_id, client_secret_key=client_secret_key, endpoint_url="https://www.sidefx.com/api/") # "build"引数で指定されたファイルをダウンロードし、ダウンロードに成功したら # そのダウンロードしたファイル名を返します。 def download_build(service, build): platform = get_current_platform() build_info = service.download.get_daily_build_download( build["product"], build["version"], build["build"], platform) download_file(build_info["download_url"], build_info["filename"]) return build_info["filename"] # ホスト先が"url"のファイルをダウンロードし、そのファイル名を"filename"にします。 def download_file(url, filename): with requests.get(url, stream=True) as response: with open(filename, "wb") as open_file: shutil.copyfileobj(response.raw, open_file) make_executable(filename) # "file_path"で指定されたファイルに実行可能権限を追加します。 def make_executable(file_path): stat_info = os.stat(file_path) os.chmod(file_path, stat.ST_MODE | stat.S_IEXEC | stat.S_IXUSR | stat.S_IXGRP | stat.S_IRUSR | stat.S_IRGRP) def run(): product = "houdini-launcher" platform = get_current_platform() service = create_service(CLIENT_ID, CLIENT_SECRET) # デイリービルドのリストを取得します。 # 最新プロダクションビルドが必要であれば、このステップをスキップして構いません。 builds = service.download.get_daily_builds_list( product, version=None, platform=platform, only_production=False) # 利用可能な最新デイリービルドを取得します。 launcher_file = download_build(service, builds[0]) # ==インストール部分はここから始めます== if __name__ == "__main__": run()
-
コードのインストール部分はプラットフォームに依存します。 プラットフォームに応じて以下のコードを上記のスクリプトに追加することでLauncherのインストールを自動化することができます。 Launcherのインストールパスはカスタマイズすることができます。 LinuxとMacOSでは、相対パスと絶対パスのどちらにも対応していますが、Windowsでは、絶対パスしか対応していません。
Windows
# 優先パスを変更して"C:\\houdini_launcher"フォルダにLauncherをインストールします。 # この工程は、インストールパスによってはマシンに対してスーパーユーザーのセキュリティ権限が必要になることに注意してください。 # もし権限が必要であれば、コマンドシェルをアドミニストレータ権限で実行してください。 subprocess.call(["./install-houdini-launcher.exe", "/S", "/D=C:\\houdini_launcher"])
Mac
# Launcherの".dmg"ファイルをマウントします。 subprocess.call(["hdiutil", "attach", launcher_file]) # "houdini_launcher"フォルダがなければ、そのフォルダを作成します。 if not os.path.exists("houdini_launcher"): os.mkdir("houdini_launcher") # 優先パスを変更して現行スクリプトのパスの"houdini_launcher"フォルダにLauncherをインストールします。 subprocess.call(["cp", "-R", "/Volumes/Houdini/Houdini Launcher.app", "houdini_launcher"]) # Launcherの".dmg"ファイルをマウント解除します。 subprocess.call(["hdiutil", "unmount", "/Volumes/Houdini"])
Linux
# 優先パスを変更して現行スクリプトのパスの"houdini_launcher"フォルダにLauncherをインストールします。 # この工程は、インストールパスによってはマシンに対してスーパーユーザーのセキュリティ権限が必要になることに注意してください。 # もし権限が必要であれば、Pythonスクリプトを`sudo`で実行してください。 subprocess.call(["./install_houdini_launcher.sh", "houdini_launcher"])
Houdiniインストールのスクリプト化 ¶
Launcherはグラフィカルなプログラムですが、コマンドライン実行可能ファイルもインストールされています。 これは、リモートまたはスクリプトでインストールを行なうのに役立ちます。
非グラフィカルなコマンドライン実行可能ファイルの名前はhoudini_installer
です。
Windows
このコマンドラインプログラムはデフォルトではC:/Program Files/SideFX/launcher/bin
にあります。
Mac
このコマンドラインプログラムは/Applications/Houdini Launcher.app/Contents/MacOS
にあります。
Linux
このコマンドラインプログラムはデフォルトでは/opt/sidefx/launcher/bin
にあります。
To... | Do this |
---|---|
インストールの準備をする |
|
インストールをスクリプト化する |
Tip 特別ビルドのHoudiniをインストールしたいのであれば、上記のコマンドに Houdiniバージョン文字列(この例では |
オフラインインストールをスクリプト化する |
|
詳細は、Launcherページのinstallサブコマンドを参照してください。