手机控制电脑执行脚本

前言

不知你是否碰到如下场景:

  1. 当dev开发完且master有新上线,dev没有master的最新代码QA无法打包,但电脑在公司,人在他方
  2. 只有你有打包权限,但电脑在公司,人在他方
  3. 。。。。。。

若在电脑旁这不是啥问题,但有时电脑在公司,人在路上或在家。就得麻烦同事来帮忙搞,嗯…有些小烦人。 但身为一个码农怎么能屈服于这种小事呢。

效果

  1. 手机给mac发送一个特定格式的邮件
  2. mac收到邮件执行对应脚本
  3. 脚本执行完将日志以邮件的方式反馈给手机
  4. 电脑休眠不影响脚本执行

工具

  1. mac自带的邮件
    图片名称
  2. mac终端自带的mail
  3. mac自带的名为【脚本编辑器】的软件
  4. 想要执行的脚本

具体配置

打开邮件,command+,打开设置,进入选择最后的规则,配置时需要注意如下几点
图片名称

  • 执行的脚本只能是appleScript(苹果自家脚本语言),使用mac自带的名为【脚本编辑器】的软件编写就行
  • 只能选择放在~/Library/Application Scripts/com.apple.mail目录下的脚本
  • 不熟悉appleScript脚本的同学可以直接让其去执行制定位置的bash脚本,bash默认目录为~/,可以根据需要cd到指定目录
    tell application "Terminal"
       activate
       do script "bash ./mail/merge.sh"
    end tell
    

bash脚本

在次提供自动merge代码的脚本,仅供参考。发送邮件使用的是mac自带的mail。如果没有收到做如下检查

	#!/bin/bash
	
	sendEmail(){
	  echo -e $1 | mail -s "merge结果" xxxxx@163.com 
	}
	
	# 指定项目目录
	cd xxxxxx
	
	# 获取当前分支
	logs=$(git symbolic-ref --short -q HEAD);
	
	logs="${logs}开始合master\n"
	
	
	# 暂存未提交的代码
	git add .
	git stash
	logs="${logs}暂存完毕\n"
	
	git fetch
	check_results=$(git merge master)
	
	if [ "$check_results" != "Already up to date." ]
	then
	  logs="${logs}有冲突请手动合并\n"
	  git merge --abort
	  sendEmail
	  exit
	fi
	
	logs="${logs}没有冲突"
	git push
	logs="${logs}合并master完成"
	sendEmail $logs
  • 就通过mail命令查看发送的邮件是否被打回,被打回按照如下方式操作,如果因为SMTPUTF8被拒绝,执行如下两条命令
    # 必须得叫sudo,我也不知道为啥,不加就报错
    sudo postconf smtputf8_enable=no
    sudo postfix reload # postfix是mac自带的邮件服务器,mail命令就是通过其收发邮件
    
  • 点击查看更多问题日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值