私はaws s3 sync
コマンドの上にGUIインターフェースを提供するMacOSアプリケーションに取り組んでいます。aws-cliをmacosアプリで配送
aws
コマンドが存在するかどうかについては、アプリケーションは何も仮定せず、brew
とaws
の両方のコマンドを設定でbrew経由でインストールしようとします。
私は、迅速な3からProcess
クラスを使用してbrew
とaws
コマンドを検出し、それが利用できない場合、それをインストールしようとするwhich
コマンドに頼っています。大雑把に、SWIFT 3によってインタフェースさスクリプトがどのように見えるこの
#!/bin/sh
export PATH=$PATH:/usr/local/bin
if ! [ -x "$(command -v $1)" ]; then
echo $2
if [ $1 == "brew" ]; then
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" &>/dev/null
fi
if [ $1 == "aws" ]; then
brew install awscli &>/dev/null
fi
fi
しかし、異なるMacOSのバージョンで、私は自動インストールを管理の問題に実行しています。
「awscli」の特定のバージョンをアプリで出荷することが可能かどうか疑問に思っていました。私は
cp /usr/local/bin/aws <project folder>
のようなものを探していて、すべての自動インストールスクリプトを削除しています。
私は答えが好きですが、いくつかの制限があります。私は 'aws s3 sync'コマンドを使いたいと思います。私が知っている最高のaws sdkはbotoですが、syncコマンドはありません。私が考えることができる最も近いのはhttps://pypi.python.org/pypi/boto_rsyncです(これは、MacにはあらかじめインストールされたPythonのバンドルがあると仮定して使用できます)。 同様に、最も近いOSX aws sdkはhttps://github.com/nickoneill/aws-sdk-osx でも安定性についてはわかりません。 そのため、私はaws-cliをアプリに直接バンドルして使用するよう呼びかけました。 – divyenduz