Skip to content

Commit

Permalink
Makefile refine
Browse files Browse the repository at this point in the history
Signed-off-by: peter-tank <30540412+peter-tank@users.noreply.github.com>
  • Loading branch information
peter-tank committed Jan 16, 2020
1 parent 03a706f commit be2a81a
Show file tree
Hide file tree
Showing 4 changed files with 133 additions and 105 deletions.
75 changes: 51 additions & 24 deletions .github/workflows/ramips-mt7621_gcc.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,73 @@
name: ramips-mt7621
on:
release:
types:
- created

name: Luci-app-clash CI
on: [push, pull_request]
jobs:
pull_request:
types:
- review_requested

push:
branches:
- patcher

jobs:
build:
runs-on: ubuntu-18.04

env:
URL: https://downloads.openwrt.org/snapshots/targets/ramips/mt7621/openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64.tar.xz

REPF: ${{ github.repository }}
PKGN: ${{ 'luci-app-clash' }}

steps:
- name: Checkout - clone repository
- name: Checkout - ${{ github.ref }}
uses: actions/checkout@v1
- name: Download and untar sdk

- name: Prepare SDK ENV
run: |
wget $URL
tar xvJf openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64.tar.xz
wget -q "${URL}"
tar xJf openwrt-sdk-*.tar.xz -C ../
mv -f "${GITHUB_WORKSPACE}" ../src
mv ../openwrt-sdk-* "${GITHUB_WORKSPACE}"
- name: Install dependencies
run: |
sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion git-core gcc-multilib libelf-dev autoconf automake libtool
- name: Prepare targets
id: po2lmo
run: |
REP=$(basename "${REPF}")
mv -vf ../src "package/${REP}"
test -d "package/${REP}/tools/po2lmo"
- name: Prebuild po2lmo host tool
if: success()
run: |
REP=$(basename "${REPF}")
pushd "package/${REP}/tools/po2lmo"
make && sudo make install
- name: Load custom configuration
env:
DEBIAN_FRONTEND: noninteractive
CONFIG_FILE: '.config'
run: |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64/.config
cd openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64
REP=$(basename "${REPF}")
[ -e "package/${REP}/${CONFIG_FILE}" ] && mv "${CONFIG}" .config
make defconfig
- name: Clone package
run: |
cd openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64/package/
git clone -b master https://github.com/frainzy1477/luci-app-clash.git
- name: Build ipk
- name: Build target
env:
DEBIAN_FRONTEND: noninteractive
run: |
cd openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64
make package/luci-app-clash/compile V=99
make package/${PKGN}/compile -j$(nproc) V=s
mkdir ../bin
find bin/ -type f -name "*${PKGN}*" | xargs -t -i mv -vf {} ../bin
- name: Upload - push to artifact file
uses: actions/upload-artifact@v1
with:
name: luci-app-clash
path: openwrt-sdk-ramips-mt7621_gcc-8.3.0_musl.Linux-x86_64/bin/packages/
name: ${{ format('{0}.{1}.{2}', github.workflow, github.actor, github.event_name) }}
path: ../bin
78 changes: 52 additions & 26 deletions .github/workflows/x86-64_gcc.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,73 @@
name: Luci-app-clash CI
on: [push, pull_request]
jobs:
name: x86_84
on:
release:
types:
- created

pull_request:
types:
- review_requested

push:
branches:
- patcher

jobs:
build:
runs-on: ubuntu-18.04

env:
URL: https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64.tar.xz

REPF: ${{ github.repository }}
PKGN: ${{ 'luci-app-clash' }}

steps:
- name: Checkout - clone repository
- name: Checkout - ${{ github.ref }}
uses: actions/checkout@v1
- name: Download and untar sdk

- name: Prepare SDK ENV
run: |
wget $URL
tar xvJf openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64.tar.xz
wget -q "${URL}"
tar xJf openwrt-sdk-*.tar.xz -C ../
mv -f "${GITHUB_WORKSPACE}" ../src
mv ../openwrt-sdk-* "${GITHUB_WORKSPACE}"
- name: Install dependencies
run: |
sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion git-core gcc-multilib libelf-dev autoconf automake libtool
- name: Prepare targets
id: po2lmo
run: |
REP=$(basename "${REPF}")
mv -vf ../src "package/${REP}"
test -d "package/${REP}/tools/po2lmo"
- name: Prebuild po2lmo host tool
if: success()
run: |
REP=$(basename "${REPF}")
pushd "package/${REP}/tools/po2lmo"
make && sudo make install
- name: Load custom configuration
env:
DEBIAN_FRONTEND: noninteractive
CONFIG_FILE: '.config'
run: |
[ -e $CONFIG_FILE ] && mv $CONFIG_FILE openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64/.config
cd openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64
make defconfig
- name: Clone package
run: |
cd openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64/package/
git clone -b master https://github.com/frainzy1477/luci-app-clash.git
REP=$(basename "${REPF}")
[ -e "package/${REP}/${CONFIG_FILE}" ] && mv "${CONFIG}" .config
make defconfig
- name: Build ipk
- name: Build target
env:
DEBIAN_FRONTEND: noninteractive
run: |
cd openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64
make package/luci-app-clash/compile V=99
make package/${PKGN}/compile -j$(nproc) V=s
mkdir ../bin
find bin/ -type f -name "*${PKGN}*" | xargs -t -i mv -vf {} ../bin
- name: Upload - push to artifact file
uses: actions/upload-artifact@v1
with:
name: luci-app-clash
path: openwrt-sdk-x86-64_gcc-8.3.0_musl.Linux-x86_64/bin/packages/
name: ${{ format('{0}.{1}.{2}', github.workflow, github.actor, github.event_name) }}
path: ../bin
85 changes: 30 additions & 55 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ define Package/luci-app-clash/description
endef

define Build/Prepare
chmod 777 -R ${CURDIR}/tools/po2lmo
${CURDIR}/tools/po2lmo/src/po2lmo ${CURDIR}/po/zh-cn/clash.po ${CURDIR}/po/zh-cn/clash.zh-cn.lmo
po2lmo ${CURDIR}/po/zh-cn/clash.po ${CURDIR}/po/zh-cn/clash.zh-cn.lmo
endef

define Build/Configure
Expand All @@ -32,88 +31,61 @@ endef
define Build/Compile
endef

define Package/$(PKG_NAME)/preinst
define Package/$(PKG_NAME)/conffiles
/etc/config/clash
endef

define Package/$(PKG_NAME)/prerm
#!/bin/sh
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
echo "Removing rc.d symlink for clash"
/etc/init.d/clash disable
/etc/init.d/clash stop
echo "Removing firewall rule for clash"
uci -q batch <<-EOF >/dev/null
delete firewall.clash
commit firewall
EOF
fi

exit 0
endef

mkdir -p /etc/clash/clashtun 2>/dev/null
mkdir -p /usr/share/clashbackup 2>/dev/null
mkdir -p /etc/clash/provider 2>/dev/null
define Package/$(PKG_NAME)/preinst
#!/bin/sh

if [ -f "/tmp/dnsmasq.d/custom_list.conf" ]; then
if [ -z "$${IPKG_INSTROOT}" ]; then
rm -rf /tmp/dnsmasq.d/custom_list.conf 2>/dev/null
fi

if [ -d "/tmp/dnsmasq.clash" ]; then
rm -rf /tmp/dnsmasq.clash 2>/dev/null
fi

if [ -f "/etc/config/clash" ]; then
mv /etc/config/clash /etc/config/clash.bak 2>/dev/null
fi

if [ -d "/usr/lib/lua/luci/model/cbi/clash" ]; then
rm -rf /usr/lib/lua/luci/model/cbi/clash 2>/dev/null
fi

if [ -d "/usr/lib/lua/luci/view/clash" ]; then
rm -rf /usr/lib/lua/luci/view/clash 2>/dev/null
fi

if [ -f /usr/share/clash/new_core_version ]; then
rm -rf /usr/share/clash/new_core_version 2>/dev/null
fi

if [ -f /usr/share/clash/new_clashr_core_version ]; then
rm -rf /usr/share/clash/new_clashr_core_version 2>/dev/null
fi

if [ -f /usr/share/clash/new_luci_version ]; then
rm -rf /usr/share/clash/new_luci_version 2>/dev/null
fi

if [ -d /usr/share/clash/web ]; then
rm -rf /usr/share/clash/web 2>/dev/null
fi

if [ -f /usr/share/clash/config/sub/config.yaml ];then
mv /usr/share/clash/config/sub/config.yaml /usr/share/clashbackup/config.bak1 2>/dev/null
fi

if [ -f /usr/share/clash/config/upload/config.yaml ];then
mv /usr/share/clash/config/upload/config.yaml /usr/share/clashbackup/config.bak2 2>/dev/null
fi

if [ -f /usr/share/clash/config/custom/config.yaml ];then
mv /usr/share/clash/config/custom/config.yaml /usr/share/clashbackup/config.bak3 2>/dev/null
fi

exit 0
endef

define Package/$(PKG_NAME)/postinst
#!/bin/sh

rm -rf /tmp/luci*

if [ -f "/etc/config/clash.bak" ]; then
if [ -z "$${IPKG_INSTROOT}" ]; then
rm -rf /tmp/luci*
mv /etc/config/clash.bak /etc/config/clash 2>/dev/null
fi

if [ -f /usr/share/clashbackup/config.bak1 ];then
mv /usr/share/clashbackup/config.bak1 /usr/share/clash/config/sub/config.yaml 2>/dev/null
fi

if [ -f /usr/share/clashbackup/config.bak2 ];then
mv /usr/share/clashbackup/config.bak2 /usr/share/clash/config/upload/config.yaml 2>/dev/null
fi

if [ -f /usr/share/clashbackup/config.bak3 ];then
mv /usr/share/clashbackup/config.bak3 /usr/share/clash/config/custom/config.yaml 2>/dev/null
fi

if [ -f "/etc/init.d/clash" ]; then
/etc/init.d/clash disable 2>/dev/null
fi

exit 0
endef

define Package/$(PKG_NAME)/install
Expand All @@ -131,6 +103,9 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard/img
$(INSTALL_DIR) $(1)/usr/share/clash/dashboard/js
$(INSTALL_DIR) $(1)/etc/clash/clashtun
$(INSTALL_DIR) $(1)/usr/share/clashbackup
$(INSTALL_DIR) $(1)/etc/clash/provider

$(INSTALL_DIR) $(1)/usr/share/clash/config
$(INSTALL_DIR) $(1)/usr/share/clash/config/sub
Expand Down
Binary file removed tools/po2lmo/src/po2lmo
Binary file not shown.

0 comments on commit be2a81a

Please sign in to comment.