はじめに
電車の中でプログラミングしようと思ってPythonista 3を1200円で購入。早速iPad Air2とiPod touchにPythonista 3をインストールしてみた。ホストPCにある既存スクリプトをPythonistaに取り込む方法が分からないので双方向のファイル転送の方法を調べてみた。
StaShのインストール
https://github.com/ywangd/stash を参照。
・まず次の1行スクリプトを実行する。
import requests as r; exec(r.get('http://bit.ly/get-stash').text)
インストールに成功すると次のように表示される。
Installation completed.
Please Restart Pythonista and run launch_stash.py under the Home directory to start StaSh.
・指示通りPythonista3を再起動(※)してからlaunch_stash.pyスクリプトを実行。UNIXコンソールのような画面に変わり、プロンプトが表示される。
StaSh v0.6.18
Tip: You can invoke almost any Python scripts, including UI and Scene, directly from StaSh
[~/Documents]$
※Pythonista3の再起動は、ホームボタンをダブルクリックしてタスクリストを表示してPythonista3のタスクを上にスワイプする。
SSH on StaSh
StaShのプロンプトをstash、リモートホストをhost、host上のユーザ名をuserとする。
・まずSSHの鍵を作成。デフォルトは1024bitのRSAなので2048bitにする。
stash$ ssh-keygen -t rsa -b 2048
・scpで公開鍵をホストに転送。ターゲットのパスは省略できない。
stash$ scp ~/.ssh/id_rsa.pub user@host:~/
・ホスト側で公開鍵を登録。
host$ cat id_rsa.pub >> .ssh/authorized_keys
・sshの接続テスト。初回実行時はpyteがインストールされる。
stash$ ssh user@host
SCP on StaSh
この記事の本題。上記でSSHの公開鍵認証が設定されていれば簡単にできる。
・デバイス→ホストPC
stash$ scp file.py user@host:~/
・ホストPC→デバイス
stash$ scp user@host:~/test.py .
Git on StaSh via HTTP
・clone:ローカルのディレクトリを指定しないと直下にファイル展開してしまうので注意する。
stash$ git clone https://github.com/username/repositry.git mydir
初回起動時はdulwichのインストールを促される。
dulwich was not found. Will attempt to download.
Neet to download dulwich. OK to download [y/n]? y
・add:ドット「.」は使えない。ファイルを明示する。
stash$ git add file.py
・status:STAGEDとUNSTAGEDが表示される。
stash$ git status
STAGED
modify['file.py']
UNSTAGED LOCAL MODS
[]
・commit:初回は名前とメールアドレスの登録を促される。
stash$ git commit "comment"
Author Name: MyName
Save this setting? [y/n]y
Author Email: user@domain
Save this setting? [y/n]y
・push:GitHubのユーザ名とパスワードを聞かれる。
stash$ git push
Attempting to push to: https://github.com/username/repositry.git, branch: refs/heads/master
Enter username: username
Enter password: password
Push to https://username:password@github.com/username/repositry.git successful.
success!
Git on StaSh via SSH
・公開鍵のGitHubへの登録
公開鍵をクリップボードにコピー
stash$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAA ...(省略)...
...(省略)... KIQ==
長押ししてSelect→ssh-rsaから==までを範囲選択→Copy
ブラウザでGitHubにログインして公開鍵を登録
Settings→左メニューのSSH and GPG keys→New SSH keyボタン
Title: iPad Air 2
Key: (長押ししてペースト)
Add SSH keyボタンを押す。
以降はHTTP経由とほぼ同じ(パスワードを聞かれない:-)。
・clone:ローカルのディレクトリを指定しないと直下にファイル展開してしまうので注意する。
stash$ git clone git@github.com:username/repositry.git mydir
今回は初回起動時ではないのでdulwichのインストールはない。
・add:ドット「.」は使えない。ファイルを明示する。
stash$ git add file.py
・status:STAGEDとUNSTAGEDが表示される。
stash$ git status
STAGED
modify['file.py']
UNSTAGED LOCAL MODS
[]
・commit:今回は名前とメールアドレスは登録済みなので聞かれない。
stash$ git commit "comment"
・push:今度はパスワードを聞かれずに出来た!
stash$ git push
Attempting to push to: git@github.com:username/repositry.git, branch: refs/heads/master
Push to git@github.com:username/repositry.git successful.
success!
Git on StaSh via SSH (GitLab編)
無料でプライベートなリポジトリを作りたかったのでGitLabも使うことにした。
落書き状態の恥ずかしいコードはこちらがお勧めです。
・公開鍵のGitLabへの登録
公開鍵をクリップボードにコピー
stash$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAA ...(省略)...
...(省略)... KIQ==
長押ししてSelect→ssh-rsaから==までを範囲選択→Copy
ブラウザでGitLabにログインして公開鍵を登録
Settings→上メニューのSSH Keys
Key: (長押ししてペースト)
Title: iPad Air 2
Add keyボタンを押す。
以降はGitHubと全く同じなので省略。