LoginSignup
56
64

More than 5 years have passed since last update.

Pythonista 3 で双方向のファイル転送

Last updated at Posted at 2017-02-22

はじめに

 電車の中でプログラミングしようと思って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への登録
 公開鍵をクリップボードにコピー
console:
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への登録
 公開鍵をクリップボードにコピー
console:
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と全く同じなので省略。

以上

56
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
64