linux下node-webkit自動跨平臺打包shell
前言
node-webkit可謂是webapp開發神器,支援windows、mac、linux,但是打包是個問題,總不能在三個系統裡面打包吧。
官方也有打包工具,但是總覺得挺麻煩的。
於是想著linux可不可以通過shell來實現跨平臺打包。
實現
發現一位大神寫的指令碼,但是由於node-webkit改名為nwjs,且該指令碼windows、mac下的指令碼有問題,因此對它進行了一些修改。
#!/bin/bash # by minghuazhou # init your app info app_name="toopos" app_dir="/home/qiqi/toopos_/trunk/tooposWeb/build" win_nw_zipfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-win-ia32.zip" linux_nw_tarfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-linux-x64.tar.gz" mac_nw_zipfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-osx-ia32.zip" # read pack_flag w=false && l=false && m=false && o=false while getopts "wlmo" arg # -w:windows -l:linux -m:mac -o:overwrite do case $arg in w) w=true ;; l) l=true ;; m) m=true ;; o) o=true ;; ?) echo "unkonw argument" exit 1 ;; esac done if [ ${o} = true ]; then #remove old file [ ${w} = true ] && rm -rf ${app_name}_win [ ${l} = true ] && rm -rf ${app_name}_linux [ ${m} = true ] && rm -rf ${app_name}_mac fi # create app.nw file cd $app_dir zip -r app.nw ./* app_nwfile=${app_dir}/app.nw if [ ${w} = true ]; then echo "creating windows *.exe file..." unzip $win_nw_zipfile -d ${app_name}_win && cd ${app_name}_win winzipdir=$(ls -ad */) mv ${winzipdir}* ./ cat nw.exe $app_nwfile > ${app_name}.exe rm -rf ${winzipdir} nw.exe nwsnapshot.exe credits.html cd .. echo "create windows app success!" else echo "ignore windows app" fi if [ ${l} = true ]; then echo "creating linux execute file..." tar -xf $linux_nw_tarfile -C ./ tardir=${linux_nw_tarfile%.tar*} && tardir=${tardir##*/} # rename tardir mv $tardir ${app_name}_linux && cd ${app_name}_linux cat nw $app_nwfile > ${app_name} && chmod +x ${app_name} rm -rf nw nwsnapshot credits.html cd .. echo "create linux app success!" else echo "ignore linux app" fi if [ ${m} = true ]; then echo "creating mac execute file..." unzip $mac_nw_zipfile -d ${app_name}_mac && cd ${app_name}_mac maczipdir=$(ls -ad */) mv ${maczipdir}* ./ if [ -f ${app_dir}/Info.plist ];then cp ${app_dir}/Info.plist nwjs.app/Contents/ fi cp $app_nwfile nwjs.app/Contents/Resources/ if [ -f ${app_dir}/app.icns ];then cp ${app_dir}/app.icns nwjs.app/Contents/Resources/ fi mv nwjs.app ${app_name}.app rm -rf ${maczipdir} nwsnapshot credits.html cd .. echo "create mac app success!" else echo "ignore mac app" fi # remove app.nw rm -f app.nw
使用方法
一.從nwjs官網上下載三個平臺的包
這裡取了win32、linux64、mac32的包
二.修改shell指令碼中app名稱、路徑、各平臺包檔案地址
三.終端執行你的.sh檔案,如sh yourshell.sh,有四個引數可以給定:app_name="toopos" app_dir="/home/qiqi/toopos_/trunk/tooposWeb/build" win_nw_zipfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-win-ia32.zip" linux_nw_tarfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-linux-x64.tar.gz" mac_nw_zipfile="/home/qiqi/toopos_/trunk/tooposBuilder/codes/nwjs-v0.12.3-osx-ia32.zip"
1.-w : 打包windows下的執行檔案到 [your_app_name]_win資料夾下
2.-l : 打包linux下的執行檔案到[your_app_name]_linux資料夾下
3.-m : 打包mac下的執行檔案到[your_app_name]_mac資料夾下
4.-o : 覆蓋之前打包過的檔案(沒有加這一項的話中間會有提示是否覆蓋檔案)
四.效果圖(mac上沒有試過,窮逼一個)
相關推薦
linux下node-webkit自動跨平臺打包shell
前言 node-webkit可謂是webapp開發神器,支援windows、mac、linux,但是打包是個問題,總不能在三個系統裡面打包吧。 官方也有打包工具,但是總覺得挺麻煩的。 於是想著linux可不可以通過shell來實現跨平臺打包。 實現 發現一位大神寫的指令碼
Linux下Tomcat日誌自動定時打包完美實現
一、場景 1、環境 CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171) 2、目的 隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out
Linux下Oracle資料庫自動備份Shell指令碼
1.在伺服器建立備份目錄,並賦予許可權 mkdir -p /backup/P_DATA #新建shell指令碼存放路徑 mkdir -p /backup/P_DB_BACK #新建Oracle資料庫備份目錄 chown -R oracle:oinstall /backup/P
linux下node部署
del 兩個 打開 nbsp class 運行 分享 profile 編輯 我直接下載二進制文件解壓,然後進行環境全局變量設置 解壓到對應的目錄tar zxvf node-v0.10.26-linux-x64.tar.gz 進入 解壓後的目錄bin目錄下,執行ls會看到兩個
Linux下Tomcat開機自動啟動
權限 esc ref 進程 chkconfig lin 自啟動腳本 lock cas linux下tomcat開機自動啟動有兩種方法,一種是簡單,一種是復雜而又專業的,使用shell腳本要實現,我們一般推薦shell腳本啟動方式。下面我們分別介紹這兩種方法。 1.shel
linux下開機不自動掛載指定分區
信息 img 指定 記錄 替換 查看 類型 一個 windows 我的debian裝好後,有保留windows,但是卻不想在debian啟動後桌面上,文件管理器中顯示windows分區,留個記錄在這裏,需要的時候方便查看 使用mount 的 noauto參數: 創建一個掛
【筆記】linux下的nginx自動安裝
前言: nginx依賴的元件比較多,大概有這幾個: a、openssl b、pcre c、zlib 安裝過程較為繁瑣,所以,這裡拿券君已經幫你整理好啦,只需要一鍵執行即可! 話不多說,開始! 1、下載整理好的nginx: https://downlo
linux下mysql的自動補全工具mycli
習慣了在bash命令列下的tab自動補全功能,在linux下安裝mysql,或者是mariadb後發現不能自動補全,這就讓我很難受,所以我找到了一個很強大的工具可以實現自動補全 這個工具就是mycli,這個工具很強大,先來看一下 我用的是centos7下的ma
Linux下開機自啟動自定義shell指令碼
一、Ubuntu下 1、方法一,編輯rc.loacl指令碼 Ubuntu開機之後會執行/etc/rc.local檔案中的指令碼, 所以我們可以直接在/etc/rc.local中新增啟動指令碼。【進入到/etc/rc5.d下,發現S99rc.local,即開機軟
linux下使用maven自動構建專案
sudo mv apache-maven-3.5.0-bin.tar.gz /opt tar xzvf apache-maven-3.5.0-bin.tar.gz ·把maven的bin目錄新增到環境變數 export PATH
Linux下的Jenkins+Tomcat+Maven+Git+Shell環境的搭建使用(jenkins自動化部署)
命令 get off ret inux src b- 保存 image 一、軟件安裝 1.安裝jdk環境 JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down
Linux下清除ftp自動登入狀態
筆者在使用機子訪問ftp時一直連著上一個使用者登入狀態下訪問的地址,導致一直無法訪問公司裡的指定ftp目錄,想著登出狀態再重新登入,一時沒找到登出方法是在是鬱悶了一會。 後來通過查詢資料找到的解決辦法: 在圖形介面桌面點選左上角的「應用程式」-「工具」-「密
Linux下mysql資料庫自動定時備份
對於網遊來說,資料庫中的資料尤其重要,實際運營中通常會有DBA或者運維人員對資料庫中資料進行日常備份,防止伺服器宕機或硬碟損壞導致的資料丟失問題 1.建立備份目錄 cd /home/game mkdir backup cd backup2.建立備份shell指令碼 vi
Linux下mysql的自動定時備份
yaml val dev 目錄 lang 自動 blank UNC -- 1、查看磁盤空間情況: 既然是定時備份,就要選擇一個空間充足的磁盤空間,避免出現因空間不足導致備份失敗,數據丟失的惡果! 存儲到當前磁盤這是最簡單,卻是最不推薦的;服務器有多塊硬盤,最好是把備份存放到
在linux下如何將資料夾打包
linux zip壓縮。壓縮當前資料夾下所有檔案,壓縮為a.zip。命令列的方法是怎樣。 zip -r fileName.zip 資料夾名 tar tar命令可以用來壓縮打包單檔案、多個檔案、單個目錄、多個目錄。 常用格式: 單個檔案壓縮打包 tar
linux下實現ssh自動登入遠端伺服器
前言:開發工作中,由於有時需要通過ssh登入遠端伺服器上去,每次都要輸入密碼,密碼很難記,感覺很麻煩,於是上網搜了通過 ssh自動登入遠端伺服器上去,從而免去了每次都要輸入密碼的困擾。 系統說明:本地機器:Redhat遠端機器:Redhat 步驟: A.本地機器需要做的修
Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell環境的搭建使用(jenkins自動化部署)
jenkins自動化部署 目標:jenkins上點構建(也可以自動檢查程式碼變化自動構建)》》》專案部署完成。 一、安裝jenkins 1.下載jenkins 這裡我選擇的是war包安裝jenkins,簡單不傷腦,別的部落格寫的jenkins版本都
Linux下Makefile的自動生成步驟
一、 Makefile 介紹 Makefile 是用於自動編譯和連結的 ,一個工程有很多檔案組成 ,每一個檔案的改變都會導致工程的重新連結 ,但是不是 所有的檔案都需要重新編譯 ,Makefile 中紀錄有檔案的資訊 ,在 mak
linux下實現sftp自動登入。
今天幫之前同事寫一個sftp自動上傳的指令碼,因為sftp無法匿名登入,因此使用sftp時,每次都需要輸入伺服器密碼,無法進行自動上傳和下載檔案,其中一種方法可以使用lftp這個就不在詳細介紹了,現在介紹另外一種方法。ssh驗證金鑰的方式(不知道github 是不是這樣)。
linux下tomcat的自動備份
tomcat的檔案可以隨時備份,在linux下設定的備份方法和Windows下一樣。計劃任務,定時打成壓縮包,方法如下: 1、頁面檔案在/home/edn/tomcat6/webapps目錄下,備份檔案存放在/home/backup目錄下. shell#vi /home/